0

さて、私のコードはこれまでのところかなりうまく機能しています。すべてうまくいきます。私の唯一の問題は、順序付けられていないリストとその内容を印刷しようとすると、何も得られないことです。ソースコードを表示すると、<ul> </ul>. 空間があるから、きっと何かが起きている。

これは私のコードです。少しコメントしましたが、何が起こっているかは明らかです。

$uname = mysqli_real_escape_string($link, $_SESSION['Username']); //Get username ready
$sql = mysqli_query($link, "SELECT * FROM users WHERE Username = '" . $uname . "'"); //SQL Query result

    if(!$sql)
        {
        echo "Error retrieving User ID. Please try again. MySQL Error: " . mysqli_error($link);
        }
    elseif($row = mysqli_fetch_assoc($sql))
        {
            $uid = $row['UserID']; //Obtain UserID
        }
    else
        {
        echo "Error: " . mysqli_error($link) . "<br />" . $uname . " / " . $sql . " / " . $uid;
        }

    mysqli_free_result($sql);

    $sql = mysqli_query($link, "SELECT * FROM auditions"); //Get everything from the auditions table

    if(!$sql)
        {
        echo "Error retrieving auditions. Please try again later. Error: " . mysqli_error($link);
        }
    elseif($row = mysqli_fetch_assoc($sql))
        {
        if(mysqli_num_rows($sql)==0)
            {
            echo "Sorry, there are currently no open auditions. Please try back at a later date.";
            }
        else
            {
            echo "<ul>";
            while($row = mysqli_fetch_assoc($sql))
                {
                echo "<li><a href='auditions.php?id=" . $row['AudID'] . "'>" . $row['AudName'] . "</a></li>";
                }
            echo "</ul>";
            }
        }
    else
        {
        echo "Error: " . mysqli_error($link);
        }

どこが間違っていますか?それがしない唯一のことは、実際に結果を取得することです。テーブルにデータを入れたので、エントリがあります! そうでなければ、何もないと言うでしょう。これを逆にして、エントリが 0 でない場合にメッセージが表示され、それが機能するようにしました。私は何をしているのですか?

前もって感謝します。

4

1 に答える 1

0

結果を 2 回取得しています。代わりに、whileループ内で結果のみをフェッチします。

<?php
$sql = mysqli_query($link, "SELECT * FROM auditions"); //Get everything from the auditions table

    if(!$sql)
        {
            echo "Error retrieving auditions. Please try again later. Error: " . mysqli_error($link);
        }
        else{
            if(mysqli_num_rows($sql)==0)
            {
                echo "Sorry, there are currently no open auditions. Please try back at a later date.";
            }
            else
            {
                echo "<ul>";
                while($row = mysqli_fetch_assoc($sql))
                {
                    echo "<li><a href='auditions.php?id=" . $row['AudID'] . "'>" . $row['AudName'] . "</a></li>";
                }
                echo "</ul>";
            }
        }

?>

mysql_fetch_assoc に関する詳細については、このリンクを参照してください。

于 2013-04-18T00:15:34.417 に答える