[php/mysql] Tester une chaine different de vide

Tester une chaine different de vide [php/mysql] - PHP - Programmation

Marsh Posté le 20-11-2003 à 18:11:49    

je veux selectionner toutes les lignes ou Qui est non nul
 
$query = "SELECT * FROM liste_cado WHERE QUI !='" ;
 
pourquoi ca ne marche pas?????

Reply

Marsh Posté le 20-11-2003 à 18:11:49   

Reply

Marsh Posté le 20-11-2003 à 18:29:24    

NOT NULL

Reply

Marsh Posté le 20-11-2003 à 18:37:14    


 
Marche pas par contre

Code :
  1. $query = "SELECT * FROM liste_cado WHERE QUI != ''" ;


fonctionne

Reply

Marsh Posté le 20-11-2003 à 19:44:38    

Là, tu récupère les chaînes de longueur , ce qui est différent des chaînes NULL :D

Reply

Marsh Posté le 21-11-2003 à 09:45:19    

Si je fais le teste avec null ma requete ne fonctionne pas (la syntaxe est bonne mais aucun resultat n'est affiché)
Pour tester avec NULL il faut je crois que la valeur de mon champs soit NULL or dans ma table la valeur du champs par defaut est "rien"
 
Je me demande quelle est la difference entre "" et NULL
 

mrBebert a écrit :

Là, tu récupère les chaînes de longueur , ce qui est différent des chaînes NULL :D  

Reply

Marsh Posté le 21-11-2003 à 10:50:42    

C'est une valeur différente. Un champ peut être à NULL si la colonne l'accepte. Ensuite, si le champ n'est pas NULL, la chaîne peut avoir une longueur de 0.
 
C'est un peut la même différence qu'entre un pointeur à void et un pointeur sur un caractère de fin de chaîne '\0' [:figti]

Reply

Marsh Posté le 21-11-2003 à 11:03:52    

En gros tu es en train de m'expliquer que c'est plus propre de definir une valeur par defaut NULL dans ma base et de tester ce NULL plutot que "" qui brille par son absence de signification meme s'il cherche a ressembler a NULL :??:  
 

mrBebert a écrit :

C'est une valeur différente. Un champ peut être à NULL si la colonne l'accepte. Ensuite, si le champ n'est pas NULL, la chaîne peut avoir une longueur de 0.
 
C'est un peut la même différence qu'entre un pointeur à void et un pointeur sur un caractère de fin de chaîne '\0' [:figti]  

Reply

Marsh Posté le 21-11-2003 à 11:25:38    

Pas forcément, ca dépend de la signification que tu donnes à ces valeurs. Généralement, on utilise NULL pour indiquer que le champ est sans objet.
 
Par exemple, dans une table stockant des infos sur des bateaux, si tu as une colonne indiquant la profondeur à laquelle il a coulé, tu peux faire la distinction entre :
- 0 : il a coulé à 0 mètre de profondeur (il est échoué, quoi :D )
- NULL : le bateau est encore en service, donc cette colonne n'a pas de signification dans ce cas
 
(j'ai pas de meilleur exemple là maintenant [:spamafote] )
 
C'est vrai que difficile d'avoir une signification vraiment différente pour une chaîne de caractères entre '' et NULL [:figti]

Reply

Marsh Posté le 21-11-2003 à 11:30:55    

je crois avoir compris la nuance  :jap:  merci
 

mrBebert a écrit :

Pas forcément, ca dépend de la signification que tu donnes à ces valeurs. Généralement, on utilise NULL pour indiquer que le champ est sans objet.
 
Par exemple, dans une table stockant des infos sur des bateaux, si tu as une colonne indiquant la profondeur à laquelle il a coulé, tu peux faire la distinction entre :
- 0 : il a coulé à 0 mètre de profondeur (il est échoué, quoi :D )
- NULL : le bateau est encore en service, donc cette colonne n'a pas de signification dans ce cas
 
(j'ai pas de meilleur exemple là maintenant [:spamafote] )
 
C'est vrai que difficile d'avoir une signification vraiment différente pour une chaîne de caractères entre '' et NULL [:figti]  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed