Хотя заявление в Php и MySQL - PullRequest
1 голос
/ 17 апреля 2011

У меня проблема с оператором while в PHP и mysql, который я пытался выяснить целую вечность, надеюсь, вы мне поможете.

У меня есть оператор while, и внутри него у меня есть два оператора if. Кажется, он работает, за исключением того, что он отображает только первую запись в массиве несколько раз.

   <?php
      $i=1;
      while($i<5){

      if ($data_review_list['review'] > 4){ 
           echo "<img src=\"images/good.png\" />\n"; 
      } 

      else{ 
           echo "<img src=\"images/bad.png\"  />\n";
      }
      echo $data_review_user['user_name']; 

      echo $data_review_list['review_msg']; 

      $i++;
     }
     ?>

Я поставил ($ i <5), так как использование ($ i! = 0) дало мне длинный список первой записи. Это дает мне первую запись 5 раз. </p>

Что я делаю не так? Как получить вторую запись и т. Д. Для отображения?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 17 апреля 2011

Хотя вы обновляете $i каждый раз в цикле, вы никогда не смотрите на $data_review_list[$i]. Как выглядит $data_review_list? Используйте этот код для проверки массива:

var_dump($data_review_list);
0 голосов
/ 17 апреля 2011

По-видимому, это должно выглядеть так (я делаю несколько предположений о вашей структуре данных здесь)

<?php
          $i=1;
          while($i<5){

          if ($data_review_list[$i]['review'] > 4){ 
               echo "<img src=\"images/good.png\" />\n"; 
          } 

          else{ 
               echo "<img src=\"images/bad.png\"  />\n";
          }
          echo $data_review_user[$i]['user_name']; 

          echo $data_review_list[$i]['review_msg']; 

          $i++;
         }
         ?>
0 голосов
/ 17 апреля 2011

Я не знаю, используете ли вы mysql или mysqli, но я предполагаю, что вы используете mysqli для этого примера. Также давайте предположим, что запрос, который вы запрашиваете в mysql, имеет LIMIT 5 в конце.

<?php while($data = $result->fetch_assoc()) {
    if($data['review'] > 4) {
        echo "<img src=\"images/good.png\" />\n"; 
    } else { 
        echo "<img src=\"images/bad.png\"  />\n";
    }

    echo $data['user_name'];
    echo $data['review_msg'];
} ?>

Это приведет к извлечению каждой из 5 строк в операторе while.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...