Tester si le résultat d'une requète est "Null"

Eléphanteau du PHP | 10 Messages

09 mars 2011, 11:13

Bonjour à tous,

je doit enregsitrer des produits et j'ai la requète suivante :
$query_num ="select max(numproduit)+1 as nump
							from produit
							where NumCategorie = ".$_POST['listecategorie'];
Elle me donne la valeur NULL pour NumProduit, comment tester ce résultat pour savoir si il est null ?

j'ai essayer :
if(mysql_num_rows($result_num) ==  0)
OU
if(mysql_num_rows($result_num) ==  NULL)
sans succès

Merci d'avance pour vos réponses.

ViPHP
xTG
ViPHP | 7331 Messages

09 mars 2011, 13:49

Cette requête te renverra forcement un n-uplet, et non NULL.
C'est le contenu du n-uplet qu'il faut vérifier, à savoir nump.

Quel est ton code d'interprétation de la requête ?

PS: un champs renvoyé par un formulaire qui n'est pas vérifié... Au coin pour une heure !

Eléphanteau du PHP | 10 Messages

09 mars 2011, 16:10

Voila ce qu'il me renvoi :

Erreur : 1064
Message : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '30,10, 3010, 'vf', 'v',257,25, 752)' at line 2
L'opération a échoué

Car $line_produit["nump"] est NULL ( pas 0 ) même si j'effectue la requète j'ai bien un résultat NULL. Voila pourquoi je veux tester si un résultat est nul.

Si ma requète ne me renvoie rien, facile, si elle me renvoi 0, "ok" mais comment faire elle me renvoie NULL alors que je ne vois pas comment c'est possible. :D

Voila pourquoi je voudrais juste savoir comment teste un champ NULL. J'ai remarqué que le requète me renvoyait NULL que quand j'utiliser MAX ou autre (SUM etc)

ViPHP
xTG
ViPHP | 7331 Messages

09 mars 2011, 18:44

Le sum() n'a rien à voir dans le problème.
C'est une erreur de syntaxe. ;)

Que contient ton champs $_POST['listecategorie'] ?
Un seul identifiant ? Si c'est cela l'erreur SQL ne vient pas de cette ligne mais en amont du programme.

Eléphanteau du PHP | 10 Messages

10 mars 2011, 00:08

Bon Finalement j'ai réussi à me débrouiller, je n'ai plus d'erreur, ma démarche est assez tordue mais merci de s'être penché sur mon problème. :mrgreen:

Autre question : quand tu me demande de tester tout mes $_POST, c'est de la manière suivante ;
if( !empty($_POST['nom']) //exemple
{
 // instructions
}
else
{
   // explication erreur
}

C'est de cette manière ? Je trouve ça très long ? Est ce que je peux le faire seulement pour certains ou vaut-il mieux vérifier chaque $_POST ??

ViPHP
xTG
ViPHP | 7331 Messages

10 mars 2011, 09:04

C'est aussi vérifier les types.
Si tu attends un entier, tu dois vérifier que tu reçois un entier et non un texte par exemple.

Il faut savoir que tout script qui permet une interrogation d'un support mémoire comprend 80% de code de vérification et 20% de code de traitement.
Quand on programme, autant bien le faire. ;)