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 :

problème structure if() et op. comparaison [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut problème structure if() et op. comparaison
    Bonjour,

    Je souhaiterais afficher un renseignement extrait d'une base de données à la seule condition que ce dernier soit renseigné. Ainsi, je m'obstine à vouloir faire marcher le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(($row['commentaire_biblio'] != ' ') or ($row['commentaire_biblio'] != '')){
    echo "<dt>Remarques concernant cet ouvrage:</dt><dd>".$row['commentaire_biblio']."</dd>";
    }
    J'ai beau essayer de remplacer le 'or' par un | ou par un ||, rien n'y fait. J'ai essayé avec ou sans les doubles parenthèses... rien non plus.

    Bref, je suis à bout !

    J'espère que quelqu'un pourra me donner un élément de réponse...

    Petite info qui peut servir : je bosse sous php5.

    PS : j'ai essayé de rechercher dans le forum longuement, mais je n'ai pas trouvé l'info qui m'intéresse... mais suis désolé d'avance si elle existe quelque part et que je suis passé à côté...

    Merci beaucoup,

    Cordialement,

    Christophe

  2. #2
    Membre actif Avatar de MANU_2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 417
    Points : 275
    Points
    275
    Par défaut
    Pourquoi tu n'as pas de requêtes SELECT NOT NULL commentaire_biblio FROM ....

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 115
    Points : 125
    Points
    125
    Par défaut
    Salut,

    Pour le "ou" utilise le ||.

    Tu veux dire que si le $row['...'] ='' ta ligne remarques s'affiche quand même? ca donne quoi a l'affichage, tu es sur que tu as pris le bon champ?

    pourrais tu montrer la requete qui donne le $row stp?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 60
    Points : 81
    Points
    81
    Par défaut
    Effectivement, éliminer les colonnes vides dès la requête SQL semble la solution la plus efficace.
    Surtout que (me semble-t'il) quand tes données viennent d'une table, NULL est représenté par 'NULL' et pas par ''. Donc tes tests devraient aussi vérifier que : $row['...'] != 'NULL' (à moins que tes champs aient une valeur par défaut, auquel cas ils ne seront jamais nuls.

    Conseil : var_dump($row) ou au moins,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "AAAAA".$row['commentaire_biblio']."BBBB"
    pour voir le vrai contenu de la variable quand elle passe le test (et ainsi, corriger ce dernier.

    Conseil 2 : :trouve:
    c'est un and (&& je crois) qu'il te faut. Là ta condition est TOUJOURS vraie :
    si $row[...] == '' alors $row[...] != ' ' (avec l'espace au milieu) et le ou est vrai (lla 2ème inégalité étant vraie)
    sinon $row[...] != '' est vrai, sonc le ou aussi.

    Voili voilou

    --
    Rom_1

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    merci déjà pour l'ensemble de vos remarques et conseils.

    la requête est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM biblio WHERE num_biblio='$id_ouvrage_collectif'
    J'ai eu à alimenter ma base à l'aide d'exports d'Access. J'ai rempli ma base grâce à la fonction 'Insertion de données à partir d'un fichier texte' disponible dans phpMyAdmin. Et il se trouve que là où se trouvaient des champs vides dans le fichier texte, on m'a automatiquement mis un espace et non un NULL.

    L'opérateur && a l'air de fonctionner. Effectivement, c'était donc un problème de logique alors ! mille excuses !

    Mais pour les autres internautes, on peut donc en conclure bel et bien que dans une structure de type "if..." on peut avoir des opérateurs booléens, et que ça fonctionne si on est logique, c'est bien ça ?

    Encore merci. Je vais voir les autres possibilités. Mais effectivement, le re-remplissage s'impose à mon avis. Je vais le tenter mais aurait de nouveau recours à ce forum si jamais je n'arrive à avoir un champ rempli comme NULL avec cette fonctionnalité d'alimentation de la base.

    Bonne soirée,

    à bientôt,

    merci beaucoup.

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

Discussions similaires

  1. [LabView 8.5] Problème structure événement
    Par drogbie dans le forum LabVIEW
    Réponses: 3
    Dernier message: 06/05/2008, 09h37
  2. Problème structure de données
    Par cocol dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 17/04/2008, 13h30
  3. [ODBC] problème au niveau de la comparaison des login et mdp
    Par vanou dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 03/06/2007, 21h37
  4. Réponses: 1
    Dernier message: 25/05/2007, 22h31
  5. Réponses: 2
    Dernier message: 09/03/2006, 14h28

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