2013-06-15 20 views
-2

У меня есть следующий код PHP:PHP - Пока ошибка/Else?

<?php 




if (!isset($_REQUEST['search'])){ 

    while(($write=mysql_fetch_array($gamesearched)) != null){ 
    echo "Found!"; 
    }else{ 
    echo "No results"; 
    } 

    } 
?> 

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

Parse error: syntax error, unexpected 'else' (T_ELSE) in C:\php\www\Gameplay\backgame.php on line 41

+4

Потому что это не действует синтаксис ... 'else' может работать в паре только с 'if'. – DCoder

+0

Отредактируйте тему, пожалуйста, прочитайте код еще раз (?) –

+0

У вас все еще есть 'else' в паре с' while', а не с 'if'. – jcsanyi

ответ

0

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

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

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

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

Все, что сказано, есть веские причины не использовать функции mysql_* в новом коде. Смотрите этот вопрос для более подробной информации, а также некоторые лучшие альтернативы: Why shouldn't I use mysql_* functions in PHP?

1

Где ваш if ??? У вас не хватает IF

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

2

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

+1

еще не на самом деле. но я знаю, что вы имели в виду – Brian

+0

@ A.S.Рома: он находится в * заявлении *, даже если он не находится в * блоке *. –

+0

Да, но не в «while statement» :) – Brian

1

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

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"; 
    } 
} 
+0

Отредактируйте тему, пожалуйста, прочитайте код еще раз (?) –

+0

Я обновил свой ответ – Nagarjun

+0

Это отобразило бы сообщение «Нет результатов», если пользователь isn ' t, нажав кнопку поиска, которая у меня есть ... –

-1

1)

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

2)

if(1): 
    echo '123'; 
else: 
    echo '456'; 
endif; 
Смежные вопросы