如何在数据库查询 returns 无结果时显示消息?
How do I display a message when database query returns no results?
我有这个代码:
<?php
$platform_id = 7;
$query="SELECT * FROM game WHERE game_id IN (SELECT game_id FROM game_platform WHERE platform_id=".$platform_id.") AND game_release BETWEEN '2015-08-01' AND '2015-08-31' ORDER BY game_release";
$result=mysqli_query($link,$query) or die (mysqli_error());
echo"<table border=1>
<tr>
<th width=40px>Day</th>
<th width=270px>Title</th>
<th width=203px>Genre</th>
<th width=203px>Developer</th>
<th width=205px>Publisher</th>
<th width=61px>Retail?</th>
<th width=30px height=30px></th>
<th width=104px>Note</th>
</tr>";
while($row=mysqli_fetch_assoc($result))
{
echo"
<tr>
<td> ". (new DateTime($row['game_release']))->format("j") ." </td>
<td>{$row['game_name']}</td>
<td>";
$query="SELECT * FROM genre WHERE genre_id=".$row['game_genre'];
$genreresult=mysqli_query($link,$query); $genrerow=mysqli_fetch_assoc($genreresult);
echo $genrerow['genre_name'];
echo "</td>
<td>{$row['game_dev']}</td>
<td>{$row['game_pub']}</td>
<td>{$row['game_type']}</td>
<td><a href=\"{$row['game_site']}\" target=\"_blank\"><img src=\"images/officialwebsite.png\" title=\"Official website\"/></a>
<a href=\"{$row['game_trailer']}\" target=\"_blank\"><img src=\"images/youtube.png\" title=\"Trailer\"/></a></td>
<td>{$row['game_note']}</td>
</tr>";
}
echo"</table>";
?>
我想在所述月份没有发布时显示一条消息,因为现在我得到一个空的 table,这对用户来说既不友好也不美观。
我在这个网站上找到了这段代码,但是由于 .isEmpty
.
,我得到了一个语法错误
<?php
$platform_id = 7;
$query="SELECT * FROM game WHERE game_id IN (SELECT game_id FROM game_platform WHERE platform_id=".$platform_id.") AND game_release BETWEEN '2015-08-01' AND '2015-08-31' ORDER BY game_release";
$result=mysqli_query($link,$query) or die (mysqli_error());
echo"<table border=1>
<tr>
<th width=40px>Day</th>
<th width=270px>Title</th>
<th width=203px>Genre</th>
<th width=203px>Developer</th>
<th width=205px>Publisher</th>
<th width=61px>Retail?</th>
<th width=30px height=30px></th>
<th width=104px>Note</th>
</tr>";
if($result.isEmpty())
echo "Unfortunately there are no releases this month!";
else
{
while($row=mysqli_fetch_assoc($result))
{
echo"
<tr>
<td> ". (new DateTime($row['game_release']))->format("j") ." </td>
<td>{$row['game_name']}</td>
<td>";
$query="SELECT * FROM genre WHERE genre_id=".$row['game_genre'];
$genreresult=mysqli_query($link,$query); $genrerow=mysqli_fetch_assoc($genreresult);
echo $genrerow['genre_name'];
echo "</td>
<td>{$row['game_dev']}</td>
<td>{$row['game_pub']}</td>
<td>{$row['game_type']}</td>
<td><a href=\"{$row['game_site']}\" target=\"_blank\"><img src=\"images/officialwebsite.png\" title=\"Official website\"/></a>
<a href=\"{$row['game_trailer']}\" target=\"_blank\"><img src=\"images/youtube.png\" title=\"Trailer\"/></a></td>
<td>{$row['game_note']}</td>
</tr>";
}
}
echo"</table>";
?>
我继续阅读,似乎没有其他方法,因为 while 循环没有 'else
's?
我该如何解决这个问题?谢谢!
您似乎混合了 javascript 和 php,因为 .isEmpty()
不是 php 函数。
您需要在显示 table 之前检查 row count,例如:
$result=mysqli_query($link,$query) or die (mysqli_error());
if (mysqli_num_rows($result) > 0) {
// your table generation code
} else {
echo "Unfortunately there are no releases this month!";
}
我有这个代码:
<?php
$platform_id = 7;
$query="SELECT * FROM game WHERE game_id IN (SELECT game_id FROM game_platform WHERE platform_id=".$platform_id.") AND game_release BETWEEN '2015-08-01' AND '2015-08-31' ORDER BY game_release";
$result=mysqli_query($link,$query) or die (mysqli_error());
echo"<table border=1>
<tr>
<th width=40px>Day</th>
<th width=270px>Title</th>
<th width=203px>Genre</th>
<th width=203px>Developer</th>
<th width=205px>Publisher</th>
<th width=61px>Retail?</th>
<th width=30px height=30px></th>
<th width=104px>Note</th>
</tr>";
while($row=mysqli_fetch_assoc($result))
{
echo"
<tr>
<td> ". (new DateTime($row['game_release']))->format("j") ." </td>
<td>{$row['game_name']}</td>
<td>";
$query="SELECT * FROM genre WHERE genre_id=".$row['game_genre'];
$genreresult=mysqli_query($link,$query); $genrerow=mysqli_fetch_assoc($genreresult);
echo $genrerow['genre_name'];
echo "</td>
<td>{$row['game_dev']}</td>
<td>{$row['game_pub']}</td>
<td>{$row['game_type']}</td>
<td><a href=\"{$row['game_site']}\" target=\"_blank\"><img src=\"images/officialwebsite.png\" title=\"Official website\"/></a>
<a href=\"{$row['game_trailer']}\" target=\"_blank\"><img src=\"images/youtube.png\" title=\"Trailer\"/></a></td>
<td>{$row['game_note']}</td>
</tr>";
}
echo"</table>";
?>
我想在所述月份没有发布时显示一条消息,因为现在我得到一个空的 table,这对用户来说既不友好也不美观。
我在这个网站上找到了这段代码,但是由于 .isEmpty
.
<?php
$platform_id = 7;
$query="SELECT * FROM game WHERE game_id IN (SELECT game_id FROM game_platform WHERE platform_id=".$platform_id.") AND game_release BETWEEN '2015-08-01' AND '2015-08-31' ORDER BY game_release";
$result=mysqli_query($link,$query) or die (mysqli_error());
echo"<table border=1>
<tr>
<th width=40px>Day</th>
<th width=270px>Title</th>
<th width=203px>Genre</th>
<th width=203px>Developer</th>
<th width=205px>Publisher</th>
<th width=61px>Retail?</th>
<th width=30px height=30px></th>
<th width=104px>Note</th>
</tr>";
if($result.isEmpty())
echo "Unfortunately there are no releases this month!";
else
{
while($row=mysqli_fetch_assoc($result))
{
echo"
<tr>
<td> ". (new DateTime($row['game_release']))->format("j") ." </td>
<td>{$row['game_name']}</td>
<td>";
$query="SELECT * FROM genre WHERE genre_id=".$row['game_genre'];
$genreresult=mysqli_query($link,$query); $genrerow=mysqli_fetch_assoc($genreresult);
echo $genrerow['genre_name'];
echo "</td>
<td>{$row['game_dev']}</td>
<td>{$row['game_pub']}</td>
<td>{$row['game_type']}</td>
<td><a href=\"{$row['game_site']}\" target=\"_blank\"><img src=\"images/officialwebsite.png\" title=\"Official website\"/></a>
<a href=\"{$row['game_trailer']}\" target=\"_blank\"><img src=\"images/youtube.png\" title=\"Trailer\"/></a></td>
<td>{$row['game_note']}</td>
</tr>";
}
}
echo"</table>";
?>
我继续阅读,似乎没有其他方法,因为 while 循环没有 'else
's?
我该如何解决这个问题?谢谢!
您似乎混合了 javascript 和 php,因为 .isEmpty()
不是 php 函数。
您需要在显示 table 之前检查 row count,例如:
$result=mysqli_query($link,$query) or die (mysqli_error());
if (mysqli_num_rows($result) > 0) {
// your table generation code
} else {
echo "Unfortunately there are no releases this month!";
}