2014-10-17 110 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."; 
} 
?>