2014-10-17 7 views
-1

Я пытаюсь заполнить таблицу данными из базы данных с помощью mysqli и php. Использование следующего кода:PHP Если Else Error

<?php 
if(mysqli_num_rows($search_query) > 0) { 
    do { 
    <tr> 
     <td> echo $rows['COL 1']; </td> 
     <td> echo $rows['COL 2']; </td> 
     <td> echo $rows['COL 3']; </td> 
     <td> echo $rows['COL 4']; </td> 
     <td> echo $rows['COL 5']; </td> 
     <td> echo $rows['COL 6']; </td> 
     <td> echo $rows['COL 7']; </td> 
     <td> echo $rows['COL 8']; </td> 
     <td> echo $rows['COL 9']; </td> 
     <td> echo $rows['COL 10']; </td> 
     <td> echo $rows['COL 11']; </td> 
     <td> echo $rows['COL 12']; </td> 
     <td> echo $rows['COL 13']; </td> 

    </tr> 
    } while ($rows=mysqli_fetch_assoc($search_query)); 
} 

else { 
    echo "No results found."; 
} 
?> 

Я получаю сообщение об ошибке и ничего не отображается на сайте. Я уверен, что это связано с тегами php, но я не могу понять, как правильно их использовать. Я также пробовал:

<?php 
if(mysqli_num_rows($search_query) > 0) { 
    do { ?> 
    <tr> 
     <td><?php echo $rows['COL 1'];?> </td> 
     <td><?php echo $rows['COL 2'];?> </td> 
     <td><?php echo $rows['COL 3'];?> </td> 
     <td><?php echo $rows['COL 4'];?> </td> 
     <td><?php echo $rows['COL 5'];?> </td> 
     <td><?php echo $rows['COL 6'];?> </td> 
     <td><?php echo $rows['COL 7'];?> </td> 
     <td><?php echo $rows['COL 8'];?> </td> 
     <td><?php echo $rows['COL 9'];?> </td> 
     <td><?php echo $rows['COL 10'];?> </td> 
     <td><?php echo $rows['COL 11'];?> </td> 
     <td><?php echo $rows['COL 12'];?> </td> 
     <td><?php echo $rows['COL 13'];?> </td> 

    </tr> 
    } <?php while ($rows=mysqli_fetch_assoc($search_query));?> 
    </table> 
} 
<?php 
else { 
    echo "No results found."; 
} 
?> 
+0

Что такое ошибка? – AdRock

+1

На первой итерации '$ rows' не задано. Вы должны использовать обычный цикл while, а условие a - начало. – jeroen

+1

Вы вводите чистый HTML-код в PHP. –

ответ

0

Попробуйте только обычный цикл.

A do while выполнит часть do, так что $ rows не будет определено.

<?php 
    if(mysqli_num_rows($search_query) > 0) { ?> 
     <table> 
     <?php while ($rows=mysqli_fetch_assoc($search_query)) { ?> 
     <tr> 
      <td><?php echo $rows['COL 1'];?> </td> 
      <td><?php echo $rows['COL 2'];?> </td> 
      <td><?php echo $rows['COL 3'];?> </td> 
      <td><?php echo $rows['COL 4'];?> </td> 
      <td><?php echo $rows['COL 5'];?> </td> 
      <td><?php echo $rows['COL 6'];?> </td> 
      <td><?php echo $rows['COL 7'];?> </td> 
      <td><?php echo $rows['COL 8'];?> </td> 
      <td><?php echo $rows['COL 9'];?> </td> 
      <td><?php echo $rows['COL 10'];?> </td> 
      <td><?php echo $rows['COL 11'];?> </td> 
      <td><?php echo $rows['COL 12'];?> </td> 
      <td><?php echo $rows['COL 13'];?> </td> 

     </tr> 
     <?php } ?> 
     </table> 

    <?php } 
    else { 
     echo "No results found."; 
    } 
    ?> 

У вас также есть закрывающая скобка за пределами ваших тегов PHP в вашем втором примере. Если включить отчет об ошибках, вы получите информативное сообщение об ошибке.

error_reporting(E_ALL); 
ini_set('display_errors', 'on'); 
+1

Это не объясняет проблему с OPs, хотя, безусловно, вы правы, что в этом случае более понятен цикл while. – arkascha

+0

Использование цикла while работает намного лучше, спасибо. – coracora

0
<?php 

    $result=mysqli_fetch_assoc($search_query); 
    if(mysqli_num_rows($result) > 0) { ?> 
    <table> 
    <?php while ($rows=$result) { ?> 
    <tr> 
     <td><?php echo $rows['COL 1'];?> </td> 
     <td><?php echo $rows['COL 2'];?> </td> 
     <td><?php echo $rows['COL 3'];?> </td> 
     <td><?php echo $rows['COL 4'];?> </td> 
     <td><?php echo $rows['COL 5'];?> </td> 
     <td><?php echo $rows['COL 6'];?> </td> 
     <td><?php echo $rows['COL 7'];?> </td> 
     <td><?php echo $rows['COL 8'];?> </td> 
     <td><?php echo $rows['COL 9'];?> </td> 
     <td><?php echo $rows['COL 10'];?> </td> 
     <td><?php echo $rows['COL 11'];?> </td> 
     <td><?php echo $rows['COL 12'];?> </td> 
     <td><?php echo $rows['COL 13'];?> </td> 

    </tr> 
    <?php } ?> 
    </table> 

<?php } 
else { 
    echo "No results found."; 
} 
?>