2010-03-08 2 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); 

Если нет идентификатора № 3, тогда $ array ['field1'] [3] возвращает следующий результат (если есть).MySQL return 0, если ничего не найдено

Но в этом случае мне нужно это вернуть 0.
Так что $ array должен содержать 5 элементов, даже если бы не все были в базе данных.

Возможно ли это?

+0

гугле http://stackoverflow.com/questions/2394307/how-do-i-return-0-from-a-mysql-db-when-the-term-in-the- где-пункт-это-не-в – Qiao

ответ

0

Если вы уверены в том, что вы запрашиваете идентификатор, то это perhabs проще всего сделать с помощью 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);

Смежные вопросы