SQL-запрос успешен, но нет информации
Итак, мой код работает довольно хорошо, все проходит, моя единственная проблема в том, что когда я пытаюсь распечатать неупорядоченный список и его содержимое, я ничего не получаю. Когда я просматриваю свой исходный код <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 записей, и это работает. Что я делаю не так, ребята?
Заранее спасибо.
1 ответ
Вы получаете результат дважды. Вместо этого, только получить результат в 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