Ошибка PHP – while / Else?

У меня есть следующий код php:

<?php if (!isset($_REQUEST['search'])){ while(($write=mysql_fetch_array($gamesearched)) != null){ echo "Found!"; }else{ echo "No results"; } } ?> 

И это дает мне ошибку:

Ошибка анализа: синтаксическая ошибка, неожиданное «else» (T_ELSE) в C: \ php \ www \ Gameplay \ backgame.php в строке 41

В PHP оператор while не может иметь условие else . Вам нужно что-то внешнее, while вы можете сказать, был ли он выполнен хотя бы один раз.

Как насчет чего-то подобного?

 $total = mysql_num_rows($gamesearched); if ($total > 0) { while (($write=mysql_fetch_array($gamesearched)) !== false) { echo "Found!"; } } else { echo "No results"; } 

В этом случае я просмотрел общее количество строк, найденных до начала, но я мог бы также начать с установки счетчика на ноль и затем увеличения его в цикле while. Это будет выглядеть примерно так:

 $total = 0; while (($write=mysql_fetch_array($gamesearched)) !== false) { $total++; echo "Found!"; } if ($total == 0) { echo "No results"; } 

Обратите внимание: mysql_fetch_array() возвращает false если больше нет строк, поэтому я также обновил условие while.

Все, что сказано, есть веские причины не использовать функции mysql_* в новом коде. См. Этот вопрос для получения более подробной информации и некоторых лучших альтернатив: Почему я не должен использовать функции mysql_ * в PHP?

PHP не поддерживает else выражения while . Вместо этого вам нужно будет использовать часовую.

Где ваш, if ??? Вам не хватает IF

Также обратите внимание, что структура if / else выглядит следующим образом: if() {} -> else {} Вы все еще не заняты иначе, должны быть вне оператора if.

Наверное, вы упустили закрытие скобки. См. Возможные правильные коды ниже.

 if (!isset($_REQUEST['search'])){ while($write=mysql_fetch_array($gamesearched)){ if($write != null) { echo "Found!"; }else{ echo "No results"; } } } в if (!isset($_REQUEST['search'])){ while($write=mysql_fetch_array($gamesearched)){ if($write != null) { echo "Found!"; }else{ echo "No results"; } } } 

или

 while(($write=mysql_fetch_array($gamesearched)) != null){ if (!isset($_REQUEST['search'])){ echo "Found!"; } else { echo "No results"; } } 

1)

 if(xxxx){ //do if }else{ //do else } 

2)

 if(1): echo '123'; else: echo '456'; endif;