$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";
}
答案 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
来计算结果集中的行数。