我试图检查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
}
}
如何检查以实现此功能?
答案 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
}