2010-03-08 53 views
1
$query = "SELECT field1, field2 FROM table WHERE id IN (1, 2, 3, 4, 5)" 
$result = mysql_query($query); 
$array = mysql_fetch_assoc($result); 

如果沒有id#3,則$ array ['field1'] [3]返回下一個結果(如果有的話)。如果沒有找到,則MySQL返回0

但我需要它在這種情況下返回0。
因此,$ array應該包含5個元素,即使並非所有元素都在數據庫中。

可以做到這一點嗎?

+0

一派http://stackoverflow.com/questions/2394307/how-do-i-return-0-from-a-mysql-db-when-the-term-in-the- WHERE子句 - 是 - 不在位的 – Qiao 2010-03-08 09:52:42

回答

0

如果你確定你正在請求的id,那麼它最適合用PHP來完成。

只需首先生成一個正確大小的空數組(不是一個非常機器繁重的操作),然後獲取所有行並在獲取時立即將它們放在正確的鍵上。

$array = range(0,5); 
while(mysql_fetch_assoc($result)) { 
    $array[$result['id']] = $result; 
} 
0

您還可以使用array_merge做一樣東西的Douwe是在暗示,即

$query = "SELECT field1, field2 FROM table WHERE id IN (1, 2, 3, 4, 5)"

$result = mysql_query($query);

$array = mysql_fetch_assoc($result);

$myarray = array(0=>"");

$newarray = array_merge($myarray,$array);

相關問題