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

S'il n'y a pas d'ID # 3, alors $ array ['field1'] [3] retourne le résultat suivant (le cas échéant).Retour de MySQL 0 si rien n'a été trouvé

Mais j'en ai besoin pour retourner 0 dans ce cas.
Alors que $ array devrait contenir 5 éléments, même si tous n'étaient pas dans la base de données.

Est-ce possible?

+0

googlé http://stackoverflow.com/questions/2394307/how-do-i-return-0-from-a-mysql-db-when-the-term-in-the- where-clause-is-not-in-the – Qiao

Répondre

0

Si vous êtes sûr de l'ID que vous demandez, il est le plus facile de le faire avec PHP. Commencez par générer un tableau vide de taille correcte (pas une opération très lourde), puis récupérez toutes les lignes et placez-les immédiatement sur la bonne touche pendant la récupération.

Comme

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

Vous pouvez également utiliser array_merge pour faire la même chose que ce Douwe suggère-t, à savoir

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

Questions connexes