IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

un IF qui délire [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 210
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 146
    Par défaut
    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.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 210
    Par défaut
    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 !!??


  4. #4
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Bonsoir, quel est le type de champs de fai ?

    tu n'aurais pas des espaces en trop ?

  5. #5
    Membre chevronné Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Par défaut
    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

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 505
    Par défaut
    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.

  7. #7
    Invité
    Invité(e)
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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)
    Dernière modification par Invité ; 16/08/2011 à 09h06.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. A ceux qui ont migré de VB6 vers VB.Net
    Par Fox dans le forum VB 6 et antérieur
    Réponses: 81
    Dernier message: 21/05/2008, 14h56
  2. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08
  3. Réponses: 3
    Dernier message: 22/07/2002, 14h19
  4. Créer une fenêtre flottante qui ne peut avoir le focus
    Par BestofMac dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/07/2002, 10h46
  5. Recherche programme qui convertit les chiffres arabes en nb
    Par oli57 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 15/06/2002, 03h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo