好吧,我正在建立一个游戏网站,我有一个搜索栏,用户输入他想要找到的游戏。我有类似的东西(这是一个测试,不需要阻止SQL注入):
<?php
if ($_REQUEST['search']){
$searched = $_POST['searched'];
$gamesearched = mysql_query("SELECT * from games WHERE name like '%$searched%'");
while($write=mysql_fetch_array($gamesearched)){
echo "Found it!"
}
}else{
echo "Search something";
}
?>
我不能在while语句中使用else,所以我该如何显示类似&#34;没有找到的游戏&#34;。
我正在尝试使用它但不起作用:P
while(($write=mysql_fetch_array($gamesearched)) != null){
echo "found";
}else{
echo "not found";
}
答案 0 :(得分:5)
为什么不在while语句中包装if语句?
if ($_REQUEST['search']){ $searched = $_POST['searched']; $gamesearched = mysql_query("SELECT * from games WHERE name like '%$searched%'"); if(mysql_num_rows($gamesearched) > 0){ while($write=mysql_fetch_array($gamesearched)){ echo "Found it!" } } else { echo "not found"; } }
答案 1 :(得分:2)
正如您所注意到的,您无法在else
后写while
,因为它是一个循环,而不是if
之类的控制结构。即使语法看起来非常相似,这也完全不同。
解决问题的一种可能性是使用布尔变量:
$found = false
while(...){
$found = true;
// something more here
}
if(!$found){
echo "nothig found";
}
答案 2 :(得分:-4)
如果您只搜索一个项目,则可以打破从早期循环
while(..) {
..
if ( found_smth ) break;
}