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 :

if result = affiche if not = n'affiche pas [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Par défaut if result = affiche if not = n'affiche pas
    Bonjour,

    Je n'arrive pas a construire un code correct pour ne pas afficher $result quand la base répond que les champs sont vides.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $result = $mysql->query("SELECT homme,femme FROM table WHERE monchamp1= '".addslashes($monchamp1)."'");
     
       if($result) 	
    {
       list($homme,$femme)=mysql_fetch_row($result); 
    $page->addhtml(' 
    <h3>Mon titre</h3>
    <ul> 
    <li>il y a '.$homme.'% d\'hommes</li>
    <li>il y a '.$femme.'% de femmes</li>
    </ul>
    <br />');
    }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Par défaut
    actuellement si il n'y a pas de réponse ton traitement ne retourne rien. Met un else...
    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
     
    $result = $mysql->query("SELECT homme,femme FROM table WHERE monchamp1= '".addslashes($monchamp1)."'");
     
       if($result) 	
    {
       list($homme,$femme)=mysql_fetch_row($result); 
    $page->addhtml(' 
    <h3>Mon titre</h3>
    <ul> 
    <li>il y a '.$homme.'% d\'hommes</li>
    <li>il y a '.$femme.'% de femmes</li>
    </ul>
    <br />');
    }else{
    mon traitement si pas de résultat
    }

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Par défaut
    j'ai essayé mais je m'embrouille tout seul

    Tu n'as pas un bout de code que je peux ajouter pour le tester ?

  4. #4
    Membre confirmé Avatar de bigltnt
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 227
    Par défaut
    Salut, tu peux essayer comme ca (j'ai pas testé):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $result = $mysql->query("SELECT homme,femme FROM table WHERE monchamp1= '".addslashes($monchamp1)."'");
     
       if($result && mysql_num_rows($result)>0){	
    {
       list($homme,$femme)=mysql_fetch_row($result); 
    $page->addhtml(' 
    <h3>Mon titre</h3>
    <ul> 
    <li>il y a '.$homme.'% d\'hommes</li>
    <li>il y a '.$femme.'% de femmes</li>
    </ul>
    <br />');
    }

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Par défaut
    non ça s'affiche toujours

    Mais je me suis mal expliqué
    si $result n'a rien dans la base c'est $result et ça qui ne doivent pas s'afficher

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $page->addhtml(' 
    <h3>Mon titre</h3>
    <ul> 
    <li>il y a '.$homme.'% d\'hommes</li>
    <li>il y a '.$femme.'% de femmes</li>
    </ul>
    <br />');

  6. #6
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Bonjour,
    Comme te l'a dit bigltnt, il faut utiliser mysql_num_rows()

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Par défaut
    J'aimerais bien comprendre:

    si tu à un résultat dans la table actuellement cela t'affiche

    Mon titre

    il y a XY hommes
    il y a XX femmes
    mais dans le cas ou la requête ne retourne rien cela t'affiche quoi exactement?

    sinon je plussois la réponse du n'admin Jumano

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Par défaut
    si tu à un résultat dans la table actuellement cela t'affiche

    Citation:
    Mon titre

    il y a XY hommes
    il y a XX femmes
    mais dans le cas ou la requête ne retourne rien cela t'affiche quoi exactement?
    il y a hommes
    il y a femmes

    et c'est ça que je veux faire disparaitre quand cela ne retourne aucun résultat de la base

  9. #9
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Comme ceci çà ne fonctionne pas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $result = $mysql->query("SELECT homme,femme FROM table WHERE monchamp1= '".addslashes($monchamp1)."'");
     
       if(mysql_num_rows($result) > 0) {	
     
       list($homme,$femme)=mysql_fetch_row($result); 
    $page->addhtml(' 
    <h3>Mon titre</h3>
    <ul> 
    <li>il y a '.$homme.'% d\'hommes</li>
    <li>il y a '.$femme.'% de femmes</li>
    </ul>
    <br />');
    }

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(mysql_num_rows($result) > 0)
    ça agit sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '.$homme.' et '.$femme.'
    mais n'efface pas ce que j'aimerai quand il n'y a pas de résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $page->addhtml(' 
    <h3>Mon titre</h3>
    <ul> 
    <li>il y a '.$homme.'% d\'hommes</li>
    <li>il y a '.$femme.'% de femmes</li>
    </ul>
    <br />');
    C'est la fonction $page->addhtml que je n'arrive pas à faire disparaitre

  11. #11
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Et en faisiant un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    echo ' 
    <h3>Mon titre</h3>
    <ul> 
    <li>il y a '.$homme.'% d\'hommes</li>
    <li>il y a '.$femme.'% de femmes</li>
    </ul>
    <br />';

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Par défaut
    Jumano

    Merci pour ta patience et ton aide

    Le dernier code que tu me donne supprime et je ne peux pas le supprimer c'est une classe.
    Si je place un echo' devant $page->addhtml( ' cela provoque une erreur de code parce que ' du echo ' perturbe la suite.

    J'ai essayé un autre genre de code avec 2 différentes pages

    page qui affiche le résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $result = $mysql->query("SELECT homme,femme FROM table WHERE monchamp1= '".addslashes($monchamp1)."'");
      if($result && mysql_num_rows($result)>0) {
        $infos = mysql_fetch_array($result);
        show_hommefemme($infos);
      }
    page ou je place le code qui renvoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    show_hommefemme($infos)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function show_conseilgeneral($infos) {
      global $page;
      $page->addhtml(' 
    <h3>Mon titre</h3>
    <ul> 
    <li>il y a '.$homme.'% d\'hommes</li>
    <li>il y a '.$femme.'% de femmes</li>
    </ul>
    <br />');
    }
    Mais j'arrive à la même chose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($result && mysql_num_rows($result)>0)
    Ne supprime pas l'affichage de
    Stp pourrais tu me donner ton avis avec un bout de code pour essayer de faire disparaitre
    quand il n'y a pas de résultat venant de la base msql

  13. #13
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Bonjour,
    Ce que je n'arrive pas à comprendre c'est pourquoi cela s'affiche malgré que tu n'es pas de résultat dans ta requète
    Bon essaye peut être ceci :
    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
    <?php
    $result = $mysql->query("SELECT homme,femme FROM table WHERE monchamp1= '".addslashes($monchamp1)."'");
    list($homme,$femme)=mysql_fetch_row($result);
     
    if(mysql_num_rows($result) == 0) {
    $page->addhtml('');
    }
     
    if(mysql_num_rows($result) > 0) {
    $page->addhtml(' 
    <h3>Mon titre</h3>
    <ul> 
    <li>il y a '.$homme.'% d\'hommes</li>
    <li>il y a '.$femme.'% de femmes</li>
    </ul>
    <br />');
    }
    ?>

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Par défaut
    Oui ça marche

    ca nous a rendu fou ce truc

    Merci beucoup pour ton aide

    Bon week end

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

Discussions similaires

  1. Afficher la valeur et non pas l'ID
    Par pepsos dans le forum Modélisation
    Réponses: 5
    Dernier message: 18/06/2016, 18h59
  2. affiche un lien mais ne pas l'imprimer
    Par afrodje dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 30/11/2007, 11h20
  3. Afficher un etat n'ayant pas d'enregistrements
    Par Farbin dans le forum IHM
    Réponses: 1
    Dernier message: 27/01/2007, 18h27
  4. Réponses: 2
    Dernier message: 14/10/2005, 12h14

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