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 :

select affichage en triple [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 19
    Points : 10
    Points
    10
    Par défaut select affichage en triple
    Bonjour
    Une requête simple vers 2 tables, et affichage en triple... comprends 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
     
    $sql = ' SELECT  * FROM  fiche ,info WHERE fiche.type1="client"  OR fiche.type1="prospect" ';	
     
    $result = $bdd->query($sql);
     
    while ($row = $result -> fetch()) 
    { 
     
    $numclt=$row['numclt'];	 	 	 	 	 
    echo '<tr><td>';
    echo  $nom=$row['nom'];			
    echo '</td><td>';
    echo  $prenom=$row['prenom'];		
    echo '</td><td>';
    echo  $telport=$row['telport'];	
    echo '</td><td>';
    echo  $telfixe=$row['telfixe'];	
     
    //=====
    echo '<tr><td>';
    echo  $info    =$row['info'];		
    echo '</td><td>';
    echo  $datea   =$row['datea'];		
     
    echo '</td><td>&nbsp;</td><td>'.$numclt.'&nbsp;</td><td>&nbsp;'.$row['numclt'].'</td></tr>';
     
    }
    Il y a 3 entrées dans la table "fiche" dont une où "type1" est 'autre' ....

    j'ai essayé aussi avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $result = $bdd->query($sql);
    $resultat=$result->fetchAll(PDO::FETCH_ASSOC);
    foreach ($resultat as $row  ) { ect....
    voila... merci de votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Que vient faire la table "info" dans ta requête ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    bonsoir

    c'est pour :

    echo $info =$row['info'];

    echo $datea =$row['datea'];

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    La syntaxe est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT colonnes FROM table
    Dans ta requête c'est la table "info" que tu as indiqué, pas une colonne "info" de la table fiche
    Retire donc
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    c'est vrai que ça porte à confusion, mais info est bien une table qui possède une colonne info ^^
    ce n'est pas très judicieux mais je ne pense pas que c'est cela qui crée le problème .... "quand même" ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il te manque la liaison (JOIN) entre la table info et la table fiche alors.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    j'ai deja essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = ' SELECT * FROM   `type` , `info`  INNER JOIN `fiche`  ON  `info`.`numclt` = `fiche`.`numclt`  WHERE `fiche`.`type1` = "client" ';
    mais c'est pareil.
    En fait il répète la requête autant de fois qu'il y a d'entrée dans la table (et il y en a trois), si j'en supprime une, il m'affiche alors en double !!

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as rajouté une table "type" en plus donc il faut une jointure avec elle aussi.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Bonjour et merci

    j'ai pas mal exploré les jointures avant de poster, mais rien de concluant, mais apres votre post je m'y suis remis ^^
    Et voila ce que ça donne avec de bon resultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $sql = ' SELECT type.*  ,info.* , fiche.* , _clt_type.* , _clt_zone.* , _prodspe.* 
    FROM   fiche
    INNER JOIN  type  	ON   `type`.`numclt`      = `fiche`.`numclt`   
    INNER JOIN  info   	ON   `info`.`numclt`      = `fiche`.`numclt`
    INNER JOIN  _clt_type   ON   `_clt_type`.`numclt` = `fiche`.`numclt`
    INNER JOIN  _clt_zone   ON   `_clt_zone`.`numclt` = `fiche`.`numclt`
    INNER JOIN  _prodspe    ON   `_prodspe`.`numclt`  = `fiche`.`numclt`
    WHERE  fiche.type1 = "client" OR fiche.type1 = "prospect" ';
    Vu que ça fonctionnait, j'ai rajouté toute mes tables
    je ne connaissais pas la syntaxe : fiche.* , ça m'a bien aidé..
    Donc Résolu......Mais je n'est tjrs pas compris par quel mécanisme, l'autre requête produisait un affichage multiple !

    Merci de votre aide

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu n'indiques pas la jointure entre 2 tables tu obtiens le produit cartesien, c'est a dire toutes les combinaisons.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Donc dés que l'on indique plus d'une table avec une condition envers l'une; il faut une jointure ? ! c'est cela ?

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    On peut même dire que des qu'on a besoin de deux tables il faut indiquer la relation entre les deux.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Très bien merci.. @ bientôt

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

Discussions similaires

  1. Affichage en triple des résultats
    Par pasdesquiches dans le forum Langage
    Réponses: 4
    Dernier message: 25/01/2012, 11h10
  2. [select] Affichage par défaut
    Par yas13 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 20/08/2008, 17h03
  3. datagridview selection affichage
    Par firasDev dans le forum Windows Forms
    Réponses: 3
    Dernier message: 13/08/2008, 14h40
  4. SELECT * affichage décimale
    Par HRS dans le forum SQL
    Réponses: 1
    Dernier message: 07/08/2008, 16h59
  5. [html][javascript] probleme <select> affichage
    Par maysa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 29/09/2004, 15h17

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