2010-11-02 149 views
1

如何檢查php/sql數據庫中while循環中選擇的任何字段是否爲0?檢查是否有0

$res = mysql_query('SELECT id, name FROM table'); \\check here? 
while($row = mysql_fetch_array) 
{ 
\\or check here? 
} 

在此先感謝!

編輯: 我需要選擇所有字段,然後檢查是否它們中的任何一個是在查詢0

+1

請澄清情況請。發現的目的究竟是什麼? – Gordon 2010-11-02 12:39:14

+1

任何字段都是指id和name!爲什麼你想檢查名稱是零? – TechTravelThink 2010-11-02 12:40:15

+0

你是否真的需要使用這些行,不管是否有零? – 2010-11-02 12:45:34

回答

0
$foundZero = false; 
$res = mysql_query('SELECT id, name FROM table'); 
while ($row = mysql_fetch_array($res)) 
{ 
    if (in_array(0, $row)) 
    { 
     // This row has a zero 
     $foundZero = true; 
    } 
} 

if ($foundZero) 
{ 
    // at least one zero in one row has been found 
} 
else 
{ 
    // No zeros have been found 
} 

如果$foundZero爲真,則至少一個字段中的一行是等於0。否則,所有字段都是非零的。

+0

是的!那是我正在尋找...至少有一個零!我的頭如果只是如此F通過坐在電腦上好幾個小時.. tahnks! – zorgyo 2010-11-02 13:07:27

0

添加where子句

SELECT id, name FROM table where my_field=0 

,那麼你並不需要檢查每一個結果,你只會得到想要的結果行。

+0

這不是什麼林loooking ..我需要選擇所有領域,然後檢查其中是否有任何一個是0. – zorgyo 2010-11-02 12:33:37

+0

例如,你需要檢查什麼領域? – 2010-11-02 12:35:23

+0

假設同名的name可以是NULL,默認值爲0.如果name沒有填充,它的值是0.我需要選擇所有的名字,然後看看它們中的任何一個是否爲0.'mysql_num_rows'woun't解決任何問題 – zorgyo 2010-11-02 12:38:25

0

顯然,檢查while循環。對於查詢可能會返回零行。

0
$res = mysql_query('SELECT count(*) FROM table WHERE my_field=0'); \\check here? 
if(mysql_num_rows($res) > 0) 
{ 
    while($row = mysql_fetch_array) 
    { 
     \\or check here? 
    } 
} 
0

如果您確實必須返回所有行然後檢查零,請在您的查詢中添加一個order by子句以最小化您的檢查。

SELECT id, name FROM table ORDER BY id DESC 

然後

if ($id <= 0) 
    handleIt() 
else 
    proceed()