2010-06-24 47 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'; 
}