Page 1 sur 1
test variable NULL
Posté : 29 déc. 2012, 20:06
par marih
Bonjour,
je souhaite tester une variable vide et je n'y arrive pas.
J'écris:
if (empty($Noms))
echo("vide");
else
echo("pas vide");
// suite
Quand $Noms contient un mot çà marche, quand il est vide il le voit plein !
La variable est définie par "Noms varchar(250)" dans un create table.
Remarque si dans phpMySQL je coche la case "NULL" du descriptif de cette zone dans la table ça marche.
par ailleurs la table est chargée par ftp depuis un fichier .txt. Plusieurs essais avec des colonnes sans rien ou avec \n même punition.
A votre avis que faut-il faire ?
merci
Re: test variable NULL
Posté : 29 déc. 2012, 20:34
par moogli
Salut,
As tu affiché le contenue de cette variable ?
Est ce que cela ne correspond pas a une des valeurs indiquées dans la doc ?
http://php.net/empty
@+
Re: test variable NULL
Posté : 29 déc. 2012, 21:15
par benv8nam
Affiche le contenu de ta variable pour voir ce qu'elle contient.
Re: test variable NULL
Posté : 30 déc. 2012, 02:49
par Genova
Ta variable n'est probablement pas vide, fait un var_dump($Noms) et dit nous ce que ça affiche.
Re: test variable NULL
Posté : 30 déc. 2012, 11:08
par marih
Bonjour à tous,
oui j'ai testé le contenu qui "apparait vide" mais qu'il trouve "non vide".
L'utilisation de var_dump($Noms); donne: string(1) " " et pourtant la zone est tjrs "non vide".
Le résultat est bien surprenant car en fait il n'y a rien dans cette zone et pourtant le test "empty" aussi bien que la comparaison par
if ($Noms == "") donne le même résultat.
Ce qui m'intrigue aussi c'est que quand je coche la case NULL de ce mot directement dans phpMySQL alors le système semble "forcer" la zone à NULL , et alors ça marche...!
Merci de votre aide.
Re: test variable NULL
Posté : 30 déc. 2012, 11:33
par marih
Complément d'info: si je force $Noms = ""; avant le test ça fonctionne bien.
Par conséquent la zone NULL dans le fichier n'est pas considérée comme NULL !
Incompréhensible !
Par ailleurs j'ai plusieurs zones dans ce cas .
Cela doit venir du chargement de la table. Mais là aussi j'ai essayé en chargeant avec des \n pour les zones vides ou rien, c'est pareil dans les 2 cas.
Re: test variable NULL
Posté : 30 déc. 2012, 11:48
par xTG
Tu as ta réponse avec le var_dump : String(1) donc un caractère.
Et entre les guillemets on voit bien un espace.
Cette variable n'est pas vide du tout !
Comment indiques-tu un NULL dans ton fichier txt ?
Re: test variable NULL
Posté : 30 déc. 2012, 12:47
par marih
dans le fichier txt, j'ai essayé soit en ne mettant rien dans la colonne, soit en mettant " \n".
Dans les 2 cas il n'y a rien de visible qd j'affiche la table sous phpAdmin et dans les deux cas il trouve quelque chose mais quoi ? puisque var_dump fournit un "blanc" mais que même un if($Noms == " " ) ne trouve pas !
Re: test variable NULL
Posté : 30 déc. 2012, 14:01
par marih
j'ai codé BINARY dans le create pour la colonne concernée et çà marche maintenant !
le test NULL se fait maintenant.
merci de votre aide
SUPER !
Re: test variable NULL
Posté : 30 déc. 2012, 15:52
par moogli
Il faut voir la structure de ton fichier et comment tu fait l'insertion, c'est. Ce moment qu'il faut traiter les données pour insérer un null si la chaîne est nulle.
@+