если моя база данных пуста, отображается предупреждение - PullRequest
0 голосов
/ 27 апреля 2018

Если моя база данных пуста, отображаются предупреждения и уведомления на моем локальном хосте

         <?php
           while ($row = mysqli_fetch_array($tasks)){ 
              if (isset($row)){
                  $rows[] = $row;
              }
           }
          ?>                 
           Count is: <?php echo count($rows); ?>             
          <?php
              foreach ($rows as $row_id  => $row){
          ?>  

, пожалуйста, помогите мне решить эту проблему.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Просто улучшение вашего текущего кода, поскольку пост выше уже отвечает на него.

<?php
    $rows = [];
    while ($row = mysqli_fetch_array($tasks)){ 
       if (isset($row)){
           $rows[] = $row;
       }
    }
?>                 
    Count is: <?= count($rows) ?> //You'll notice that I changed this line 
    //to a shorter version. since "<?= ?>" will automatically "echo" anything within 
    //it so you don't have to write echo and a closing ";"

      <?php
          foreach ($rows as $row_id  => $row){
          //let's clean your checkbox code here to make it more 
          //understandable
          $checked = ($row['status'])?"checked":"";//This is a ternary operator you can read [here][1]
          echo '<input type="checkbox" id="task" '.$checked.'>';
      ?>               
          <td class= "task"><?= $row['task'] ?></td>
    <?php } ?>

Счастливое кодирование

0 голосов
/ 27 апреля 2018

Вы должны объявить переменную $rows перед загрузкой, если строк нет.

   $rows = [];
   while ($row = mysqli_fetch_array($tasks))
   { 
      $rows[] = $row;
   }

Если вы этого не сделаете, $rows будет установлен только в вашем цикле while, как вы видели.

Вы можете сократить это до

$rows = mysqli_fetch_all ($tasks, MYSQLI_BOTH);
...