0

好吧,我正在制作一个游戏网站,并且我有一个搜索栏,用户可以在其中键入他想要查找的游戏。我有这样的东西(这是一个测试,不需要阻止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,所以我将如何显示“找不到游戏”之类的内容。

我正在尝试使用它但不起作用:P

while(($write=mysql_fetch_array($gamesearched)) != null){
echo "found";
}else{
echo "not found";
}
4

3 回答 3

5

为什么不在你的 while 语句周围加上一个 if 语句呢?

if ($_REQUEST['search']){

    $searched = $_POST['搜索'];
    $gamesearched = mysql_query("SELECT * from games WHERE name like '%$searched%'");

    if(mysql_num_rows($gamesearched) > 0){

         而($write=mysql_fetch_array($gamesearched)){
         回声“找到了!”
         }

     } 别的 {

          回声“未找到”;

     }

}
于 2013-06-15T09:10:46.197 回答
2

正如您所注意到的,您不能else在 a 之后编写,while因为它是一个循环,而不是像if. 即使语法看起来非常相似,这也是完全不同的东西。

解决您的问题的一种可能性是使用布尔变量:

$found = false
while(...){
  $found = true;
  // something more here
}
if(!$found){
  echo "nothig found";
}
于 2013-06-15T09:10:20.817 回答
-4

如果你只寻找一个项目,你可以提前从循环中中断

while(..) {
  ..
  if ( found_smth ) break;
}
于 2013-06-15T09:23:38.920 回答