-1

我正在尝试使此代码显示与所有者匹配的行数。我用来测试的所有者目前有三个项目,但只有一个项目出现。我怎样才能让它显示所有者的所有物品?

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

3 回答 3

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>";
    }
?>
于 2012-07-23T23:49:29.107 回答
0

你不应该mysql_fetch_assoc在之后打电话@mysql_query。它已经在那里获取了一条记录并将内部数据指针向前移动。

附带说明:您应该使用正确的用户名转义,因为在这种形式下,代码容易受到 SQL 注入的攻击。

于 2012-07-23T23:49:31.480 回答
0

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

于 2012-07-23T23:51:18.947 回答