检查获取的数组是否为空或不是PHP?

时间:2012-08-03 06:45:55

标签: php mysql

我试图检查mysql_fetch_array()函数是否返回一个空数组。但我的代码似乎不起作用。在这里,我想确保如果数组为空,我想在构造消息下显示。

代码:

$queryContents= queryMembers();
$exeQuery = mysql_query($queryContents);
while($fetchSet = mysql_fetch_array($exeQuery)) {
   if(count($fetchSet) == 0) {
     echo "This Page is Under Construction";
   }else{
     // something else to display the content
   }
}

如何检查以实现此功能?

6 个答案:

答案 0 :(得分:14)

使用mysql_num_rows来计算行数。试试这个。

$exeQuery = mysql_query($queryContents);

if(mysql_num_rows($exeQuery)== 0){
   echo "This Page is Under Construction";
}
else{
   while($fetchSet = mysql_fetch_array($exeQuery)) {

     // something else to display the content

   }
}

答案 1 :(得分:5)

你真的应该使用mysql_num_rows http://us2.php.net/manual/en/function.mysql-num-rows.php

但是,在旁注中,您应该使用php empty()代替。 http://us2.php.net/empty

答案 2 :(得分:4)

  

使用mysql_fetch_array()时,它会返回数据中的行   在使用while循环时逐个设置。

如果没有记录,while循环不会执行。在这种情况下,声明一个布尔变量,如果它进入while循环,则使其为true。像:

$queryContents= queryMembers();
$exeQuery = mysql_query($queryContents);
$recordExists = 0;
while($fetchSet = mysql_fetch_array($exeQuery)) {
     if($recordExists == 0 )
       $recordExists = 1;
     // something else to display the content

}

if($recordExists == 0 ){
    echo "This Page is Under Construction";
}

希望这有效!

答案 3 :(得分:1)

你可以这样做:

while($r[]=mysql_fetch_array($sql));
// now $r has all the results
if(empty($r)){
  // do something
}

来源:php doc

答案 4 :(得分:0)

试试这个

if(empty($fetchSet) 
{
   echo "This Page is Under Construction";
}
else
{
 // something else to display the content
}

答案 5 :(得分:0)

如果没有结果,while循环中的代码永远不会运行。如果没有更多结果,mysql_fetch_array返回null / false。你需要做的是先用mysql_num_rows检查,然后再检查。

$queryContents= queryMembers();
$exeQuery = mysql_query($queryContents);

 if(mysql_num_rows ($exeQuery) == 0) {
     echo "This Page is Under Construction";
 }

while($fetchSet = mysql_fetch_array($exeQuery)) {
    // something else to display the content
}