2010-06-24 79 views
1

我需要一种方法来做到这一点,如果一个MySQL查询dosn't检索任何数据,会发生一些事情。这是一个例子。PHP MYSQL if null statement

$color="red"; 
$query = mysql_query("SELECT * FROM people WHERE shirt='$color'"); 
if($query = null){ 
echo 'No people wearing '.$color' shirts available.'; 
} 

回答

9

为此使用mysql_num_rows()

if(mysql_num_rows($query) == 0) { 
    // No results returned 
5

使用mysql_num_rows来检查您的查询返回了多少行。

<?php 

$link = mysql_connect("localhost", "mysql_user", "mysql_password"); 
mysql_select_db("database", $link); 

$result = mysql_query("SELECT * FROM table1", $link); 
$num_rows = mysql_num_rows($result); 

if($num_rows == 0) { 
    // No results returned 
    echo "No results!"; 
} else { 
    echo "$num_rows Rows\n"; 
} 

?> 
0

除了mysql_num_rows()还有COUNT()可能像这样被使用:

"SELECT COUNT(*) FROM people WHERE shirt='$color'" 

你实际上可能需要更多的数据从数据库中,但如果你只需要一个号码,然后这将删除需要为if

+2

一个缺点这种方法是实际得到的数据(如果存在的话),你必须作出至少两次调用数据库。数据可能在呼叫之间改变也是可能的。 – brainimus 2010-06-24 21:16:44

0

你可以使用empty之一:

$num_rows = mysql_num_rows($result); 

if(empty($num_rows)){ 
    echo 'No results'; 
}