Rechercher : dans
Par :

[php/sql] variable NULL

Dernière réponse le 20 oct 2008 à 23:03:56 Rémy, le 18 avr 2008 à 15:38:14 
 Signaler ce message aux modérateurs

Bonjour,

Bla bla inutile, voici le code :

$req=mysql_query("SELECT * FROM $fiche WHERE blabla=\"1\";");
			while($rep=mysql_fetch_array($req))
			{
				$k=0;
				$contenu.='INSERT INTO '.$fiche.' VALUES (';
				
				while(isset($rep[$k]) OR ???????)
				{
						$contenu.='\''.$rep[$k].'\', ';
						$k++;
				}
				$contenu=substr($contenu, 0, strlen($contenu)-2);
				$contenu.=');'."\r\n";
			}


J'espère que vous comprenez à peu près ce que je veux faire : mettre des requêtes sql dans une variable...
Mon soucis : certaines valeurs de ma bdd sont égales à NULL. Du coup, lors du isset($rep[$k]), la réponse est FALSE et ma boucle s'arrête.
Ma question donc : comment différencier NULL d'une valeur non définie ?
J'espère m'être bien fait comprendre, n'hésitez pas à demander des précisions.

Merci de m'éclairer...

Meilleures réponses pour « [php/sql] variable NULL » dans :
PHP - Les variables Voir Concept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...
[PHP] Notice: Undefined index: VoirSi vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line...
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
PHP - Les variables d'environnement VoirNotion de variable d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...

1

Thamior, le 18 avr 2008 à 15:41:56

Bonjour,

Je te propose de remplacer isset par empty. Le manuel de cette fonction :
http://fr.php.net/empty

En espérant que ça t'aide.
Thamior.

Répondre à Thamior

2

Rémy, le 18 avr 2008 à 15:46:07

Non, empty, ne correspond pas à ça.
empty : 0, NULL ou vide
j'ai aussi testé le is_null, rien à faire !... grrrrr

Répondre à Rémy

3

elghafoud, le 18 avr 2008 à 15:55:52

Si je comprends bien ...
voici ce que tu peux faire...
dans un premier temps utilise la fonction isset($variable) ! si la variable/la case de ton tableau existe... si c'est le cas, tu peux ajouter if(empty($variable)) pour voir si elle est vide ou pas ......

http://fr.php.net/manual/fr/function.isset.php

courage Là où la diplomatie a échoué, il reste la femme.

Répondre à elghafoud

4

Rémy, le 18 avr 2008 à 16:00:51

Désolé mais pas possible car :

$var=NULL;
if(isset($var))echo 'ok';else echo 'pas ok';


renvoie 'pas ok'...

Répondre à Rémy

5

Thamior, le 18 avr 2008 à 16:03:19

Je viens de penser à cette syntaxe :

$var=NULL;
if($var == NULL)echo 'ok';else echo 'pas ok';

Normalement ça devrait t'afficher ok.
Thamior.

Répondre à Thamior

6

Rémy, le 18 avr 2008 à 16:04:58

Exact mais lorsque $var n'est pas déclarée (c'est mon cas en bout de bdd), il renvoie 'ok' aussi.

Comment différencier NULL de 'non déclaré' ??

Répondre à Rémy

7

Thamior, le 18 avr 2008 à 16:08:37

Dans ce cas, je ferai quelque chose qui ressemble à ça :
$var=NULL;
if(($var == NULL) && !empty($var))echo 'ok';else echo 'pas ok';

Je pense que ça devrait marcher.
Thamior.

Répondre à Thamior

8

Rémy, le 18 avr 2008 à 16:13:21

Le NULL est inclus dans le empty.
J'ai quand même testé mais... :(
Merci bien en tout cas. Si tu as une autre idée...

Répondre à Rémy

9

Thamior, le 18 avr 2008 à 16:20:47

Je viens de tomber sur le site suivant :
http://www.webmaster-hub.com/publication/imprimer27.html

Presque en bas de page, il y a une piste pour ton problème.

En espérant que ça t'aide.
Thamior.

Répondre à Thamior

10

Rémy, le 18 avr 2008 à 16:23:31

Déjà vu.
Mais ca confirme mon intuition... IM-PO-SI-BLE !!
Il va faloir que je change la structure de ma bdd et vire les NULL... Un boulot dingue parce que j'ai une centaine de fichier php à modifier :'-(

Répondre à Rémy

11

Thamior, le 18 avr 2008 à 16:29:39

Je vais faire des tests si je trouve quelques choses de concluant, je te passerai le code ^^.

Si tu trouves, je veux bien aussi. Thamior.

Répondre à Thamior

12

Rémy, le 18 avr 2008 à 16:30:31

OK, pas de problèmes, merci bcp en tout cas !!

Répondre à Rémy

13

Rémy, le 18 avr 2008 à 16:50:55

Je me suis résigné à ce qu'il n'y ait pas de NULL dans ma base de données. A priori, ca fonctionne.

Répondre à Rémy

14

4vn3r, le 13 jun 2008 à 18:51:49

Salut,
je tombe ici en cherchant les moyens de verifier si une variable n'est pas definie, mais bon....
bref desolé de remonter le topic mais si t'as pas fini de changer tous les NULL de ta bdd, rémy, t'as qu'a essayer ceci :

if (empty($var) OR $var == NUL) { echo pas ok; }

if (!empty $var AND $var != NULL) {echo ok}


je ne vois qu'est ce qui bloquerait ...?

Répondre à 4vn3r

15

Abalone, le 20 oct 2008 à 20:44:23

Salut !

Perso sur une base oracle ou les valeurs étaient en "(NULL)" ou même sans rien du tout j'ai détourné le problème en testant comme ceci :

if($var!='' && $var!=' ')...

Si ça peut aider quelqun ;)

Répondre à Abalone

16

 okuni, le 20 oct 2008 à 23:03:56

Comme a dit 4vn3r
c'est plus utile d'utiliser !empty

et sinon, pour modifier très rapidement ta bdd, utilise un for ;)
mais fais bien attention au perte de donnée (je parle d'expérience lool) sauvegarde bien ta base avant de la modifier, on ne sais jamais :p L'amour, c'est comme les spaghettis; quand c'est mou, c'est ­cuit. (proverbe belge)

Répondre à okuni
Collection CommentÇaMarche.net