PHP中结果为空的条件

时间:2009-06-03 09:45:43

标签: php

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

我现在需要一个简单的条件,如果结果为空,那么我需要在xml [登录成功]中返回no。

这是正确的方法......

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 个答案:

答案 0 :(得分:2)

if (mysql_num_rows($result) == 0) { 
  $output .= '<loginsuccess>no</loginsuccess>';
} else {
  // your code
}

答案 1 :(得分:1)

请改为尝试:

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

答案 2 :(得分:1)

请注意,我会做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>';

此外,最好不要将逻辑和输出混合在一起,但在这种情况下这将是一种过度杀伤。

答案 3 :(得分:0)

当没有行时,不会简单地跳过for - 循环吗?否则,您可能希望使用mysql_num_rows来计算结果集中的行数。