Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/08/2011, 20h04   #1
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 89
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 89
Points : 31
Points : 31
Par défaut un IF qui délire

Bonjour à tous
Je dois avoir une erreur devant mes yeux mais malgré deux bonne heures à tester ...je ne vois tjrs pas..
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
if (isset($_GET['item'])) // disable les champs deja enregistré
{
 
$reponse = $bdd->query("SELECT `id`,`vcv`,`fai`,`corr` FROM `tableau` WHERE `item`='$item'");
while ($donnees = $reponse->fetch())
{
  $vcv=$donnees['vcv'];
  $fai=$donnees['fai'];
  $corr=$donnees['corr'];
 
  if ( $vcv !='NULL')  {$testdisable1++;}
  if ( $fai !='NULL')  {$testdisable2++;}
  if ( $corr!='NULL')  {$testdisable3++;}
 
//__________________test
 
  echo 'cell vcv : '.$donnees['vcv'];
  echo ' testdisable1 : '.$testdisable1;
 
  echo 'cell fai : '.$donnees['fai'];
  echo ' testdisable2 : '.$testdisable2;
 
  echo 'cell corr : '.$donnees['corr'];
  echo ' testdisable3 : '.$testdisable3;
//_________________
}
}
La variable vcv => pas de problème [test concluant]
La variable corr => pas de problème [test concluant]
mais La variable fai incrémente '$testdisable2++' , même si la valeur est 'NULL'...
J'ai testé avant le IF, $testdisable2 est bien à zero [assigné en début de page]
Je me suis servis des données en direct (if($donnees['fai'] ect...).
J'ai chercher si la même variable n'existait pas ailleurs....
j'ai supprimer les données de la base, puis retest...
Et à chaque fois cette erreur d'analyse survient uniquement avec 'fai'..

phpmyadmin :



Quand dites-vous ?
bilcosby est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 20h30   #2
Membre confirmé
 
Inscription : juillet 2011
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 146
Points : 253
Points : 253
La valeur NULL sql n'est pas une chaine 'NULL' mais une valeur à part entière

Regarde http://php.net/manual/fr/function.is-null.php pour tester si la valeur est nulle.
Tolriq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 20h46   #3
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 89
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 89
Points : 31
Points : 31
C'est moi qui entre cette valeur !!
Il y a peut etre confusion, je vais tester avec une autre..
cela dit je ne comprends pas pourquoi cela fonctionne avec les deux autres ?

Je reviens après les test

Merci de ton aide

EDIT:

Bon j'ai remplacé 'NULL' par 'XXX' et le problème reste le même !
j'ai fait aussi => if ( $donnees['fai'] !='XXX') {} else {$testdisable2++;}
et la il n’incrémente pas $testdisable2 !!??

bilcosby est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 22h39   #4
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Bonsoir, quel est le type de champs de fai ?

tu n'aurais pas des espaces en trop ?
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 23h16   #5
Membre expérimenté
 
Avatar de papyphp
 
Inscription : avril 2005
Messages : 425
Détails du profil
Informations personnelles :
Âge : 62
Localisation : Belgique

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : avril 2005
Messages : 425
Points : 545
Points : 545
Bonsoir,

Je vais peut-être dire une c... mais je vois à la ligne 4 et je ne vois pas (dans ce que vous nous montrez ) que la variable $item soit affectée
__________________
Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp. Et ce coup ci, elle ne nous a pas ratés
papyphp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 08h48   #6
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
Citation:
Envoyé par papyphp Voir le message
Bonsoir,

Je vais peut-être dire une c... mais je vois à la ligne 4 et je ne vois pas (dans ce que vous nous montrez ) que la variable $item soit affectée
+1


De plus, vous avez-vu à quoi doit correspondre 'item', à une phrase complète.

Il y a manifestement une mauvaise modélisation de la DB.
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 08h56   #7
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour,
comme dit Tolriq, tu confonds (je pense) NULL et 'NULL'.
- NULL est une valeur NULL (champ vide) "NULL values represent missing unknown data."
- 'NULL' est la chaine de caractères ... 'NULL'

Si dans la bd, tu as des champs vides (NULL) :
Code :
if(!is_null($var)) { // si pas NULL ... }
Au niveau de PhpMyAdmin, la différence se voit à l'affichage :
- valeur NULL -> NULL (en italique) (et en mode "edition", ca n'affiche rien dans l'input)
- chaine 'NULL' -> NULL (et en mode "edition", ca affiche la chaine NULL dans l'input)
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 11h51   #8
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 89
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 89
Points : 31
Points : 31
Merci de votre aide.
Pour 'item', plus haut dans le code :
Code :
if (isset($_GET['item'])){$item=$_GET['item'];}
On oublie 'NULL', je l'ai remplacer par 'XXX'.
J'ai contrôlé la variable, il n'y à pas d'espace en +...
Le champ est de type 'varchar (40) UTF8'
Pour répondre à MaitrePylos, je ne saisi pas ce que tu as voulu dire par :
"Il y a manifestement une mauvaise modélisation de la DB."

Et ne pas oublier qu'avec la même config(bdd) et le même script, les champs VCV et CORR fonctionnent très bien !!

..
bilcosby est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 12h29   #9
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
un t'indiques quoi ?
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 12h33   #10
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 89
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 89
Points : 31
Points : 31
string 'XXX ' (length=4)

apparement il y a un espace !!

je cherche.....
bilcosby est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 12h38   #11
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
Citation:
Envoyé par bilcosby Voir le message
string 'XXX ' (length=4)

apparement il y a un espace !!

je cherche.....

Trim() devrais résoudre ce souci
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 12h43   #12
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 89
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 89
Points : 31
Points : 31
j'ai trouvé, je chercher avec toute les occurrences de 'XXX', mais le problème ce trouvait dans le code sql :
Code :
1
2
3
4
$bdd->exec('INSERT INTO `iprsfr`.`tableau` 
(`id` ,`ref` ,`item` ,`vcv` ,`fai` ,`corr` ,`date`)
VALUES 
(NULL , "'.$ref.'", "'.$item.'", "'.$filename1.'", "'.$filename2.' ", "'.$filename3.'", "'.$today.'"); ');
Merci à vous tous ..

Le var_dump($fai) ma sauvé (je connaissais pas !)

Merci et à bientôt .....
bilcosby est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h10.


 
 
 
 
Partenaires

Hébergement Web