bugfix> php > 投稿

次のコードを実行します。

$getytclicks = mysqli_query($mysqli, "SELECT * FROM links WHERE type='youtube'");
$clicks=array();
    while($r = mysqli_fetch_array($getytclicks))
    {
        if($r['month'] == $month && $r['year'] == date("Y"))
        {
            foreach($days as $day)
            {
                if($r['day'] . " " . $month == $day && $r['year'] == date("Y"))
                {
                    $clicks[$day] .= mysqli_num_rows(mysqli_query($mysqli, "SELECT * FROM links WHERE day='".$r['day']."' AND month='".$r['month']."' AND year='".$r['year']."'"));
                } else {
                    $clicks[$day] .= 0;
                }
            }
        }
    }
var_dump($clicks);

そして、これは何 var_dump ですショー:

array (size=31)
  '01 Май' => string '0000000000' (length=10)
  '02 Май' => string '0000000000' (length=10)
  '03 Май' => string '0000000000' (length=10)
  '04 Май' => string '0000000000' (length=10)
  '05 Май' => string '0000000000' (length=10)
  '06 Май' => string '0000000000' (length=10)
  '07 Май' => string '0000000000' (length=10)
  '08 Май' => string '0000000000' (length=10)
  '09 Май' => string '0000000000' (length=10)
  '10 Май' => string '0000000000' (length=10)
  '11 Май' => string '0000000000' (length=10)
  '12 Май' => string '0000000000' (length=10)
  '13 Май' => string '0000000000' (length=10)
  '14 Май' => string '0000000000' (length=10)
  '15 Май' => string '0000000000' (length=10)
  '16 Май' => string '0000000000' (length=10)
  '17 Май' => string '0000000000' (length=10)
  '18 Май' => string '0000000000' (length=10)
  '19 Май' => string '0000000000' (length=10)
  '20 Май' => string '1000000000' (length=10)
  '21 Май' => string '0000000000' (length=10)
  '22 Май' => string '0333000000' (length=10)
  '23 Май' => string '0000100000' (length=10)
  '24 Май' => string '0000044440' (length=10)
  '25 Май' => string '0000000001' (length=10)
  '26 Май' => string '0000000000' (length=10)
  '27 Май' => string '0000000000' (length=10)
  '28 Май' => string '0000000000' (length=10)
  '29 Май' => string '0000000000' (length=10)
  '30 Май' => string '0000000000' (length=10)
  '31 Май' => string '0000000000' (length=10)

なぜゼロが多すぎるのですか?

ゼロでなければなりません。さらに、値が 1 の場合 、 34 および 1 、ゼロで表示するのではなく、表示するだけです。

私は $clicks['day'] .= から変更しようとしました $clicks['day'] = へしかし、それは最後の結果、 1 のみを表示します 25th May の 。

回答 2 件
  • 0を $clicks[$day] .= 0; として追加しています 。 $clicks [$day] = 0;として試してみると思います。毎回追加するだけではありません。

    $getytclicks = mysqli_query($mysqli, "SELECT * FROM links WHERE type='youtube'");
    $clicks=array();
        while($r = mysqli_fetch_array($getytclicks))
        {
            if($r['month'] == $month && $r['year'] == date("Y"))
            {
                foreach($days as $day)
                {
                    if($r['day'] . " " . $month == $day && $r['year'] == date("Y"))
                    {
                        $clicks[$day] = mysqli_num_rows(mysqli_query($mysqli, "SELECT * FROM links WHERE day='".$r['day']."' AND month='".$r['month']."' AND year='".$r['year']."'"));
                    } else {
                        $clicks[$day] = 0;
                    }
                }
            }
        }
    var_dump($clicks);
    
    

  • データを連結しているため、これらの超過値が発生しています。

    これを変える:

    if($r['day'] . " " . $month == $day && $r['year'] == date("Y"))
    {
         $clicks[$day] .= mysqli_num_rows(mysqli_query($mysqli, "SELECT * FROM links WHERE day='".$r['day']."' AND month='".$r['month']."' AND year='".$r['year']."'"));
    } else {
        $clicks[$day] .= 0;
    }
    
    

    これに:

    if($r['day'] . " " . $month == $day && $r['year'] == date("Y"))
    {
       $clicks[$day] = mysqli_num_rows(mysqli_query($mysqli, "SELECT * FROM links WHERE day='".$r['day']."' AND month='".$r['month']."' AND year='".$r['year']."'"));
    } else {
       $clicks[$day] = 0;
    }
    
    

あなたの答え