2014-10-17 109 views
-1

我想用数据库中的数据填充表使用mysqli和php。使用以下代码:PHP如果其他错误

<?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 2014-10-17 15:00:42

+1

在第一次迭代时,未设置“$ rows”。您应该使用正常的'while'循环,条件是开始。 – jeroen 2014-10-17 15:00:59

+1

您正在向PHP注入纯HTML。 – 2014-10-17 15:01:36

回答

0

试着用一个普通的while循环。

这样做,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

这并没有解释OP的问题,但当然你确定'while'循环在这里更有意义。 – arkascha 2014-10-17 15:03:06

+0

使用while循环效果更好,谢谢。 – coracora 2014-10-17 15:10:40

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."; 
} 
?>