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 :

Pb de requetes imbriquées [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
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Par défaut Pb de requetes imbriquées
    Bonjour à tous,
    voila mon soucis, j'ai une table qui contiens les lignes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Auchan / V2 / Nom_de_famille1 	     	 
    Auchan / V2 / Nom_de_famille2 	   	 
    Auchan / Englos / Nom_de_famille3
    "Auchan" correspond au champ "enseigne", "V2" et "Englos" correspondent au champ "magasin" et "Nom_de_familleX" correspond au champ "Nom"

    Mon soucis est que je voudrais afficher quelques chose de ce style en php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    V2
      Nom_de_famille1
      Nom_de_famille2
    Englos
      Nom_de_famille3
    Mais je m'en sort pas...
    j'utilise cela pour le moment mais ca n'affiche pas le resultat voulu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $req = "select * from nom_table where nom_enseigne = 'Auchan'";
    $res = mysql_query($req) or die(mysql_error());
    while($row = mysql_fetch_object($res))
    {
      echo $row->nom_magasin."<br>";
      echo "&nbsp;&nbsp;&nbsp;".$row->nom."<br>";
    }
    mais ca me retourne cela :
    V2
    Nom_de_famille1
    V2
    Nom_de_famille2
    Englos
    Nom_de_famille3


    Merci d'avance pour votre aide

  2. #2
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Il faut que tu utilises un GROUP BY dans ta requête SQL

    Edit: n'importe quoi, je sais , je vais de ce pas enlever ma réponse ...

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Par défaut
    Merci pour ta réponse rapide!
    J'avais malheuresuement deja essayé en fesant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $req = "select * from atrack_point where nom_enseigne = 'Auchan' group by nom_enseigne";
    Mais il ne me sort que 1seul résultat pour le magasin V2 alors qu'il y en a deux

  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
    Par défaut
    tu peux trier puis à la lecture détecter le changement de l'élément d'une ligne à l'autre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $req = "select * from nom_table where nom_enseigne = 'Auchan' ORDER BY nom_magasin";
    $res = mysql_query($req) or die(mysql_error());
     
    $current_magasin = "";
    while($row = mysql_fetch_object($res))
    {
      if ($row->nom_magasin != $current_magasin) {
          $row->nom_magasin."<br/>";
          $current_magasin =  $row->nom_magasin;
      }
      echo "&nbsp;&nbsp;&nbsp;".$row->nom."<br/>";
    }
    au passage c'est une erreur stratégique de ne pas avoir une structure relationnelle : tu ne devrais pas avoir "Auchan" repeté sur plusieurs lignes ; a la place tu devrais avoir un id faisant référence à une table "enseigne"
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Par défaut
    Ca marche! merci beaucoup c'est cool!

  6. #6
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Oui en effet car GROUP BY sert pour des résultats calculés (comme COUNT)

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

Discussions similaires

  1. [requete] requete imbriquée
    Par karamazov994 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/07/2005, 17h54
  2. Requete imbriquée, oui mais...
    Par zax-tfh dans le forum Requêtes
    Réponses: 6
    Dernier message: 24/03/2005, 01h48
  3. Equivalent d'une requete imbriquée ??
    Par webtheque dans le forum Requêtes
    Réponses: 8
    Dernier message: 31/08/2004, 10h07
  4. Requetes imbriquées et jointures
    Par Emile Le Tueur* dans le forum Requêtes
    Réponses: 4
    Dernier message: 31/03/2004, 23h12
  5. Requete imbriquée sur Firebird ou Interbase
    Par Thib dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/03/2004, 09h00

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