2013-06-15 4 views
0

Ну, я создаю игровой сайт, и у меня есть панель поиска, где пользователь вводит игру, которую он хочет найти. У меня есть что-то вроде этого (это тест, не нужно блокировать инъекции SQL):PHP - Как сделать заявление?

<?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"; 
} 


?> 

Я не могу использовать еще в то время как заявление так, как бы мне сделать, чтобы показать что-то вроде «Нет игры, где были найдены ".

Я пытаюсь использовать это, но не работает: P

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

ответ

2

, как вы заметили, вы не можете писать else после while, потому что это петля, а не управляющей структуры, как if. даже если синтаксис выглядит очень похожим, это совершенно разные вещи.

одна возможность решить вашу проблему будет использовать булеву переменную:

$found = false 
while(...){ 
    $found = true; 
    // something more here 
} 
if(!$found){ 
    echo "nothig found"; 
} 
5

Почему бы не завернуть, если заявление вокруг в то время как заявление?

 
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"; 

    } 

}
+0

Обратите внимание на последний закрывающая скобка} Я добавил в конце, в случае, если вы пытались это уже. Кроме того, функция строк mysql num будет получать количество результатов, соответствующих вашему запросу, и может использоваться в любом запросе SELECT. – ShoeLace1291

-4

если вы только искать один единственный элемент, вы можете сломать из петли раннего

while(..) { 
    .. 
    if (found_smth) break; 
} 
Смежные вопросы