2010-11-02 3 views
1

Comment vérifier avec php/sql si l'un des champs dans la base de données qui sont sélectionnés dans la boucle while est 0?vérifier s'il y a 0

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

Merci d'avance!

EDIT: Je besoin de sélectionner tous les champs, puis vérifier si l'un d'eux est 0.

+1

s'il vous plaît préciser le scénario s'il vous plaît. Quel est exactement le but de découvrir? – Gordon

+1

Tous les champs se réfèrent à l'identifiant et au nom! Pourquoi voulez-vous vérifier le nom est zéro? – TechTravelThink

+0

Avez-vous réellement besoin d'utiliser les lignes, qu'il y ait ou non des zéros? –

Répondre

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 
} 

Si $foundZero est vrai, au moins un champ dans une ligne est égale à 0. Dans le cas contraire, tous les champs ne sont pas nuls.

+0

oui! ce que je cherchais ... au moins un zéro! Ma tête si juste F Up en s'asseyant par le PC pendant de nombreuses heures .. tahnks! – zorgyo

0

dans la requête ajouter une clause where

SELECT id, name FROM table where my_field=0 

vous pas besoin de vérifier tous les résultats , vous obtenez seulement les lignes de résultats voulus.

+0

Ce n'est pas ce que je suis loooking pour .. Je dois sélectionner tous les champs et ensuite vérifier si l'un d'eux est 0. – zorgyo

+0

quels champs par exemple vous devez vérifier? –

+0

disons le même nom ... nom peut être NULL avec la valeur par défaut 0. Si le nom n'est pas rempli sa valeur est 0. Je dois sélectionner tous les noms et voir si l'un d'entre eux est 0. 'mysql_num_rows' woun't résoudre n'importe quoi – zorgyo

0

Évidemment, vérifiez dans la boucle while. Pour la requête peut retourner la ligne ZERO.

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

Si vous devez vraiment retourner toutes les lignes et ensuite vérifier zéro, ajoutez une clause order by à votre requête pour minimiser votre vérification.

SELECT id, name FROM table ORDER BY id DESC 

puis

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