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 :

Recherche nulle dans une base et affichage


Sujet :

PHP & Base de données

  1. #1
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 869
    Points : 4 885
    Points
    4 885
    Par défaut Recherche nulle dans une base et affichage
    Bonjour !

    Une donnée d'une table de ma base peut être null. J'effectue une requête dans cette table et je veux afficher le résultat de cette requête avec le script suivant :
    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
     
    <?
      $l = $_SESSION["login"];
    $pa = $_SESSION["pass"];
    @ $db = mysql_connect("localhost", "$l", "$pa");
    if (!$db) {
    echo "Erreur de connection !!!";
    if ($_SESSION["rg"]==0)
    		echo "<META HTTP-EQUIV=\"Window-TARGET\" CONTENT=\"frame2; URL=Aaccueil.php\">";
    echo "<META HTTP-EQUIV=\"Window-TARGET\" CONTENT=\"frame2; URL=Caccueil.php\">";
    }
    mysql_select_db("Proteomique"); 
    $query = "select Fax from User where Login='$l'";
    $res = mysql_query($query);
    $num = mysql_num_rows($res);
    if ($num > 0) {
    	$row = mysql_fetch_array($res);
    	$fax = $row["Fax"];
    	echo "$fax";
    	session_register("fax");
    	}
    else 
    	echo "Pas de numéro";
    mysql_close();
      ?>
    Ce qui fait que si le nombre de lignes trouvées est > à 0, il affiche quelque chose (un numéro de fax, en l'occurence) alors que dans le cas contraire, il affiche la string "Pas de numéro".
    Cependnt, quand je fais tourner le script, celui-ci ne m'affiche rien quand la donnée est null ! !
    Pourquoi tant de haine ???

    Merci de vos réponses !

    @ +++

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    SALUT !

    c'est quel champ qui est NULL ? FAX ?

    et tu veux qu'en fait les champ FAX qui sont NULL soient traités comme s'ils n'existaient pas ?

    dans ce cas je te propose ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Fax FROM User WHERE Login = '$1' AND Fax IS NOT NULL
    ou alors veux-tu que si le champ Fax est NULL, ça t'affiche une valeur particulière ?
    dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $row['Fax'] === NULL ? 'NULL' : $row['Fax'];
    et utilise plutôt le tableau $_SESSION que les fonctions session_* pour la gestion des variables de session...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 59
    Points : 71
    Points
    71
    Par défaut Attention a la roquette
    Hello,

    C'est normal, tu demande d'afficher un certain valeur de champs pour une ligne qui EXISTE.

    si tu avais fait :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    select prénom, fax from user where login="monlogin"
    tu aurais
    prénom: Gérard
    fax: Null (Null n'étant pas visible bien sûr !!)
    Il y donc bien des données pour la clause lgin="monlogin" puisque "monlogin" existe.
    je ne sais pas si je suis bien clair là ...

    Ce n'est donc pas la présence d'une ligne que tu doit vérifier
    mais tester la valeur de Fax:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ((is_null($fax))||(trim($fax)==""){
       $fax="Pas de fax ...";
    }
    echo $fax;
    Bon courage

    O.FOSTIER
    Ni dieu Ni maitre

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 59
    Points : 71
    Points
    71
    Par défaut J'oubliais
    Pour info,

    tu peux aussi tester la valeur Null dans la requete
    Explication:

    $query = "select IFNULL(mb_fax,'Pas defax ...') as mb_fax from user where login=$l";

    si row['fax']==Null
    alors echo $row['fax'] renvoi " Pas de fax ..."

    IFNULL remplace le NVL sous Oracle

    O.FOSTIER
    Ni dieu Ni maitre

Discussions similaires

  1. recherche colonne dans une base
    Par stephyugh dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 29/08/2014, 10h59
  2. Recherche efficace dans une base de donnée excel
    Par endersox dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/06/2008, 07h36
  3. Recherche croisé dans une base de donnée
    Par elephant13 dans le forum C#
    Réponses: 1
    Dernier message: 24/03/2007, 16h26
  4. [RegEx] Recherche avancée dans une base
    Par renator67 dans le forum Langage
    Réponses: 14
    Dernier message: 24/01/2007, 00h23
  5. Réponses: 7
    Dernier message: 15/02/2006, 12h52

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