2009-12-27 137 views
0

我想檢查列是否包含表中的任何字段值。檢查字段值是否存在?

因爲我想獲得欄中的字段值並對它們做些什麼,但首先我要檢查它們是否存在。

我曾嘗試:

$query = "SELECT anonymous_username FROM users"; 
$result = mysqli_query($conn, $query) or die ("Couldn't execute query: " . mysqli_error($conn)); 

if(mysqli_num_rows($result) > 0) 
{ 
while($row = mysqli_fetch_assoc($result)) 
{ 
    echo "exists"; 
} 
} 

但即使所有該列的領域是空,回送的「存在」。所以我該怎麼做呢?

編輯:谷歌是您的朋友:

$query = "SELECT anonymous_username FROM users WHERE anonymous_username <> '' AND anonymous_username IS NOT NULL"; 
+0

你確定特定線路迴應「存在」? – Gumbo 2009-12-27 22:55:10

+0

是的,我現在找到了解決方案..我更新後的文章 – ajsie 2009-12-27 22:58:12

+0

而不是在數據層上處理它,你可以在業務層上做你的邏輯,你做類似的事情:if(!isset($ row)) {//你的邏輯}。 – 2009-12-27 23:01:50

回答

1

如果你正在尋找檢查是否有行有非空,非空anonymous_username列,您可以:

SELECT count(*) as Num 
FROM users 
WHERE LENGTH(anonymous_username) > 0 

在PHP中,你可以檢索像數:

$result = mysql_query($sql); 
$row = mysql_fetch_assoc($result); 
$rowcount = $row['num']; 
3

mysqli_affected_rows是隻對變化像INSERTUPDATEREPLACEDELETE數據的查詢。對於SELECT使用mysqli_num_rows

+0

但它仍然沒有幫助,因爲結果仍然是1.它得到的領域雖然它是空的。基本上我想檢查一列中的任何字段是否有值。 – ajsie 2009-12-27 22:48:18