我的网站上有一个MySQL关键字搜索,它运行正常。问题是当有人搜索我没有添加的关键字时,结果页面上没有显示任何内容。
我没有显示任何内容,而是希望收到no results found
消息。
所以我使用下面的代码:
if (mysql_num_rows($Recordset1) > 0) {
// no results
echo 'No results found.';
} else {
do {
// output
} while($res = mysql_fetch_assoc($Recordset1));
}
问题是每当我搜索一个知道它在我的数据库中的关键字时,我会得到我的结果以及no results found
消息。 (我的网页左上方也会显示no results found
消息,推送整个网站。)
当我搜索一个我知道不在我的数据库中的关键字时,我根本没有收到任何消息,它没有像以前那样显示。
我玩过更大,更少,更平等的标志并遇到了类似的问题。我被告知我的逻辑是倒退的,但我不确定它应该是什么样的。
非常感谢任何帮助,提前谢谢。
答案 0 :(得分:1)
do {} while循环不适合数据库提取,除非在进入循环之前进行行提取。对于输出部分的第一次迭代,将不会从数据库中获取任何结果,因此您将基本上不输出任何内容。
如果没有结果,mysql_num_rows()将返回0,所以你实际上是反转了elogic,说实际上没有行。即使单行结果也会使> 0
返回true并输出“无结果”。
答案 1 :(得分:1)
if (mysql_num_rows($Recordset1) == 0) {
// no results
echo 'No results found.';
} else {
while($res = mysql_fetch_assoc($Recordset1)) {
// output
}
}
尝试一下......
1。)如果没有结果则mysql_num_rows为0 2.)在获得输出之前,您应该将其提取到变量而不是在使用它之后
答案 2 :(得分:0)
if (mysql_num_rows($Recordset1) == 0) {
. . .
答案 3 :(得分:0)
将您的if条件更改为
if (mysql_num_rows($Recordset1) == 0) {
当您使用> 0
时,表示“有结果”且不“未找到结果”。