MySQL return 0 eğer bulundu hiçbir şey

2 Cevap php
$query = "SELECT field1, field2  FROM table WHERE id IN (1, 2, 3, 4, 5)"
$result = mysql_query($query);
$array = mysql_fetch_assoc($result);

Hiçbir id # 3 varsa, o zaman $ dizi ['alan1'] [3] sonraki sonuç (varsa) döndürür.

But I need it to return 0 in that case.
So that $array should contain 5 elements, even if not all were in database.

Bunu yapmak mümkün mü?

2 Cevap

Eğer isteğinde id yıllardan konusunda emin değilseniz o zaman PHP ile bunu yapmak için en kolay teklifinde bulunacak bulunuyor.

Sadece ilk doğru boyutta boş bir dizi (bir çok makine-ağır çalışma) oluşturmak, sonra tüm satırlarını ve getirilirken anında sağ tuş üzerine koydu.

Gibi

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

Ayrıca douwe düşündüren ne gibi aynı şeyi array_merge kullanabilirsiniz, yani

$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);