2012-05-01 3 views
2

J'essaie d'utiliser la fonction IFNULL() pour empêcher le résultat de la requête d'être nul, car les valeurs nulles provoquent des erreurs lorsque les résultats sont convertis en tableau JSON.Traitement de la valeur nulle et JSON

$sql = mysql_query("select IFNULL(status,'nothing'), 
    foodname from disease_food, 
    food where disease_food.Disease_ID=$d1 or disease_food.Disease_ID=$d2 and  
    Food_ID=$res1 and disease_food.Food_ID=food.ID"); 

while($row=mysql_fetch_assoc($sql)) { 
    $output[] = $row; 
} 

$data = json_encode($output); 
print($data); 
mysql_close(); 

Les erreurs: (lorsque le résultat est nul)

Undefined variable: output

+3

Vous devez utiliser les commandes préparées ces jours-ci, ce genre de requête est dangereuse et archaïque: http://php.net/manual/en/pdo.prepared-statements.php – freshnode

+0

Essayez '$ sql = mysql_query ("sélectionnez IFNULL (status, 'nothing'), nom de la nourriture de disease_food, aliment où disease_food.Disease_ID = $ d1 ou disease_food.Disease_ID = $ d2 et Food_ID = $ res1 et disease_food.Food_ID = food.ID") OU meurs (mysql_error()); 'et dites-moi quelle erreur (le cas échéant, vous obtenez) – freshnode

+0

Que diriez-vous de localiser et corriger cette erreur en premier? –

Répondre

0

Je pense que vous Hava une faute de frappe. il y a un 'missing before status'.

IFNULL(status,'nothing')