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

Requêtes MySQL Discussion :

[mysql et php] requêtes imbriquées


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de php_de_travers
    Inscrit en
    Juin 2004
    Messages
    460
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 460
    Par défaut [mysql et php] requêtes imbriquées
    Sur les conseils d'un abonné au forum php, je repose ma question sur ce forum.
    --------------------------------

    Bonjour,

    comment bâtir une requête SQL afin qu'apparaisse une liste de ce type :

    Equipe 1
    - jacques
    - bernard
    - robert

    Equipe 2
    - olivier
    - henri

    NB : ce qui m'importe est de bien faire apparaître le nom de l'équipe, suivi du nom des joueurs et cela pour chacune des équipes.
    Si c'est possible...

    Pour info, les enregistrements sont du type

    id| equipe | prenom
    -------------------------
    1 | Equipe 1 | jacques
    2 | Equipe 1 | robert
    3 | Equipe 2 | henri
    4 | Equipe 1 | bernard

    Par avance, merci de votre aide

  2. #2
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 30
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select id,equipe,prenom from <nomtable> group by equipe
    ou alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select id,equipe,GROUP_CONCAT(prenom) from <nomtable> group by equipe

  3. #3
    Membre éclairé Avatar de php_de_travers
    Inscrit en
    Juin 2004
    Messages
    460
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 460
    Par défaut
    Ok, merci.

    Mais comment afficher les résultats de la requête pour bien lister de la manière suivante, si cela est possible ?

    Equipe 1
    - jacques
    - bernard
    - robert

    Equipe 2
    - olivier
    - henri

  4. #4
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 30
    Par défaut
    Tu ne pourra pas faire de présentation sous SQL .

  5. #5
    Membre éclairé Avatar de php_de_travers
    Inscrit en
    Juin 2004
    Messages
    460
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 460
    Par défaut
    Citation Envoyé par kilanepa
    Tu ne pourra pas faire de présentation sous SQL .
    La solution n'est-elle pas de faire des requêtes imbriquées pour extraire le nom de l'équipe puis le nom des joueurs de cette équipe par une itération ?

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 414
    Par défaut
    le group by ne sert que lorsqu'on effectue des opérations sur des colonnes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select id,equipe,prenom from <nomtable> group by equipe
    Donc dans cette requete le group by ne sert absolument à rien !

    Si on avait une requete du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select champ, sum(points) from matable group by champ;
    Là le group by est nécessaire, on groupe par champ pour faire la somme des points pour chaque valeur de champ

    Effectivement, on ne fait pas de présentation avec SQL, on récupère des données.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select id,equipe,prenom from nomtable order by equipe;
    Va te ramener les infos classées par equipe.
    Tu auras tous les membres de equipe 1, puis tous les membres de equipe 2, etc...

  7. #7
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    +1, ce genre de traitement cosmétique est à bannir en SQL. C'est le rôle de l'applicatif (en l'occurrence PHP) de mettre en forme les données.

  8. #8
    Membre éclairé Avatar de php_de_travers
    Inscrit en
    Juin 2004
    Messages
    460
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 460
    Par défaut
    Citation Envoyé par Maximilian
    +1, ce genre de traitement cosmétique est à bannir en SQL. C'est le rôle de l'applicatif (en l'occurrence PHP) de mettre en forme les données.
    Et voilà donc ma solution : (pour une fois, c'est moi qui la trouve !)

    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
    $ConnexionMysql = mysql_connect($host,$user,$password);
    if ($ConnexionMysql == true)
    {
    $sql = "SELECT DISTINCT equipe FROM $table ORDER BY equipe";
    $Resultat=mysql_db_query ($db, $sql);
    while ($info = mysql_fetch_array ($Resultat))
    {
    		$equipe = $info ['equipe'] ;
    		echo $equipe ;   
    		// REQUETE IMBRIQUEE DEBUT 
    				$sql2 = "SELECT * FROM $table WHERE equipe = '$equipe' ";
    				$Resultat2=mysql_db_query ($db, $sql2);
    				while ($info2 = mysql_fetch_array ($Resultat2))
    				{
    					$prenom = $info2 ['prenom']) ;
    					$nom = $info2 ['nom'] ;
    					echo $prenom ; echo $nom
    				}
    		// REQUETE IMBRIQUEE FIN
    	print '<br/>' ;
    }
    mysql_close () ;
    }
    Si les spécialistes ont mieux, je suis preneur...

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

Discussions similaires

  1. [PHP-mySql] requête imbriquée
    Par djew13 dans le forum Langage
    Réponses: 5
    Dernier message: 18/05/2011, 11h58
  2. [MySQL] Problème de requête imbriquée (mysql) & php
    Par niacinside dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/05/2008, 11h59
  3. [PHP MySQL] Erreur execution requête de type INSERT
    Par Pfeffer dans le forum Requêtes
    Réponses: 6
    Dernier message: 23/01/2006, 18h38
  4. requête mysql sous php
    Par remi59 dans le forum Débuter
    Réponses: 9
    Dernier message: 03/07/2003, 11h39
  5. Réponses: 14
    Dernier message: 17/03/2003, 19h31

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