-1

このコードが、所有者と一致する行がいくつあっても表示されるようにしようとしています。テストに使用している所有者には現在3つのアイテムがありますが、表示されるアイテムは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。すでに1つのレコードをフェッチし、内部データポイナーを先に進めます。

補足:ユーザー名の適切なエスケープを使用する必要があります。その形式では、コードはSQLインジェクションに対して脆弱であるためです。

于 2012-07-23T23:49:31.480 に答える
0

最初を取り出し$row = mysql_fetch_assoc($get);ます。

于 2012-07-23T23:51:18.947 に答える