2012-07-23 46 views
-1

我試圖讓這個代碼顯示有很多行與所有者匹配。我用來測試的所有者目前有三個項目,但只有一個項目出現。我怎樣才能讓它顯示所有者的所有物品?用循環顯示MySQL的多行

<?php 
    $username = $_SESSION['username']; 
    $get = @mysql_query("SELECT * FROM items WHERE owner = '$username'"); 
    $row = mysql_fetch_assoc($get); 
    $check = mysql_num_rows($get); 

    if($check == 0) 
     echo "You have no items in your inventory."; 

    while($row = mysql_fetch_assoc($get)) 
    { 
     echo "<p>Item Name:" . $row['name'] . "</p></br>"; 
    } 
?> 
+0

您正在提取第一行,然後無所作爲。 – nickb 2012-07-23 23:48:35

回答

0

做這樣的

<?php 
    $username = $_SESSION['username']; 
    $get = @mysql_query("SELECT * FROM items WHERE owner = '$username'"); 
    // deleted 
    $check = mysql_num_rows($get); 

    if($check == 0) 
     echo "You have no items in your inventory."; 

    while($row = mysql_fetch_assoc($get)) 
    { 
     echo "<p>Item Name:" . $row['name'] . "</p></br>"; 
    } 
?> 
0

你不應該@mysql_query後立即打電話mysql_fetch_assoc。它已經在那裏獲取一條記錄,並將內部數據定位器向前移動。

請注意:您應該正確轉義用戶名,因爲在這種形式下,代碼很容易受到SQL注入攻擊。

0

取出第一個$row = mysql_fetch_assoc($get);