Условие, когда результат пуст в PHP - PullRequest
0 голосов
/ 03 июня 2009
$output = "<loginsuccess>";

for( $i = 1; $row = mysql_fetch_array($result); $i++ )          {


$output .="<keyword>".$_POST['keyword']."</keyword><name>".$row['url']."</name><occur>".$row['occurrences']."</occur><queryTime>".(substr($end_time-$start_time,0,5))."</queryTime>";
}

$output .= "</loginsuccess>";

Теперь мне нужно простое условие: если результат будет пустым, мне нужно будет вернуть no в xml [вход в систему успешен].

Это правильный путь ....

if($row = mysql_fetch_array($result))          {

for( $i = 1; $row = mysql_fetch_array($result); $i++ )          {

$output .="<keyword>".$_POST['keyword']."</keyword><name>".$row['url']."</name><occur>".$row['occurrences']."</occur><queryTime>".(substr($end_time-$start_time,0,5))."</queryTime>";
} } else { 
    $output.="no"; 
}

Ответы [ 4 ]

2 голосов
/ 03 июня 2009
if (mysql_num_rows($result) == 0) { 
  $output .= '<loginsuccess>no</loginsuccess>';
} else {
  // your code
}
1 голос
/ 03 июня 2009

Просто короткое замечание, я бы сделал то, что делает Schnalle, но в вашем коде я бы изменил цикл for на цикл while, поскольку вы ничего не делаете с $ i

while($row = mysql_fetch_row($result)){

В общем, я бы написал такой код:

$output = '<loginsucces>';
if(mysql_num_rows($result)){
  while($row = mysql_fetch_row($result)){
    $output .="<keyword>".$_POST['keyword']."</keyword><name>".$row['url']."</name><occur>".$row['occurrences']."</occur><queryTime>".(substr($end_time-$start_time,0,5))."</queryTime>";
  }
} else {
  $output .= 'no';
}
$output .= '</loginsucces>';

Также было бы еще лучше не смешивать логику и вывод, но это было бы излишним в этой ситуации.

1 голос
/ 03 июня 2009

Попробуйте вместо этого:

$i = 1;

while($row = mysql_fetch_array($result))
{
    $output .="<keyword>".$_POST['keyword']."</keyword><name>".$row['url']."</name><occur>".$row['occurrences']."</occur><queryTime>".(substr($end_time-$start_time,0,5))."</queryTime>";

    $i++;
}

if ($i == 1)
    $output .= "no";
0 голосов
/ 03 июня 2009

Не пропустите ли for петлю, если строк нет? В противном случае вы можете использовать mysql_num_rows для подсчета количества строк в наборе результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...