使用MySQL循环显示多行

时间:2012-07-23 23:42:52

标签: php mysql loops while-loop

我正在尝试这样做,以便此代码显示有许多行与所有者匹配。我目前用于测试的所有者有三个项目,但只显示其中一个项目。如何才能显示所有所有者的项目?

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

3 个答案:

答案 0 :(得分: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>";
    }
?>

答案 1 :(得分:0)

你不应该在mysql_fetch_assoc之后立即致电@mysql_query。它已经在那里获取了一条记录,并提前调整内部数据。

旁注:你应该使用正确的用户名转义,因为在那种形式下代码很容易被SQL注入。

答案 2 :(得分:0)

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