Rechercher : dans
Par :

[PHP]Double requête SQL

Dernière réponse le 3 nov 2006 à 08:49:48 kikadisa, le 1 nov 2006 à 17:25:46 
 Signaler ce message aux modérateurs

Bonjour
Dans mon site il ya un petit blem'
explication
Je fais une première requête SQL m'affichant le nom de l'animateur.
Puis j'en fait une autre qui en fonction du nom de l'animateur m'affiche le nom des membres qui ont cet animateur.
Voici le code :

   <?php
   //  on affiche les équipes du secteurs  
     mysql_connect('*********','**********','********');
     mysql_select_db('********');
  //on se connecte à la base SQL
   $team=mysql_query("SELECT*FROM equipe WHERE secteur='$secteur' ORDER BY animateur" );
   $equipe=mysql_fetch_array($team);
   mysql_close();
       while($equipe)
         //on affiche le nom de l'animateur
           {
               $animateur=$equipe['animateur'];
             ?>
   Equipe de : <?php echo $animateur?><br/>avec :
            <?php
               $adherants=mysql_query("SELECT*FROM equipe WHERE animateur='$animateur'" );
               $membre=mysql_fetch_array($adherants);
                     while($membre)
   //on affiche les membre où l'on as le même animateur
                $membre=$membre['membre'];
                   {
                      echo $membre.',';
                     }
                 ?>
          <br/>
          <!--lien vers léquipe en détails -->
          <a href="./equipe/.'$secteur'.'.php?anim='.'$animateur'.>Voir cette équipe en détails</a>
          <?php
                }
   //on se déconnecte des connexions SQL
   // fin de l'affichage des équipes  
  ?>


J'ai comme entrée

Prénom : clémence ; secteur : les herbiers ; animateur : babeth
Prénom : charlène ; secteur : les herbiers ; animateur : babeth

Et à la fin je voudrais voir
Equipe de : Babeth
avec : Charlène, Clémence,


Comment faire ??
Merci pour l'aide

Meilleures réponses pour « [PHP]Double requête SQL » dans :
SQL - éviter les doublons dans un SELECT Voir Problème Comment éviter les doublons dans les résultats d'une requête SQL ? Solution Il suffit d'utiliser la clause DISTINCT entre SELECT et les champs. Exemple : SELECT distinct id,nom,prenom FROM matable Plus d'informations ...
SQL - Sous-requêtes VoirExpression des sous-requêtes Effectuer une sous-requête consiste à effectuer une requête à l'intérieur d'une autre, ou en d'autres termes d'utiliser une requête afin d'en réaliser une autre (on entend parfois le terme de requêtes en...
Exécution de requêtes avec JDBC VoirExécution d'une requête SQL Pour exécuter une requête SQL, il s'agit dans un premier temps de créer un objet Statement, pouvant être obtenu à partir de l'objet Connection. Un objet ResultSet permettra de récupérer les données en provenance de...

1

ceddec, le 2 nov 2006 à 18:15:27

Bonjour,

Voila ce que je pense :

query="SELECT * FROM equipe WHERE secteur='$secteur' ORDER BY animateur";
$res=mysql_query($query);
while($equipe=mysql_fetch_array($res))
{
    $anim=$equip['animateur']; 
    query2="SELECT * FROM equipe WHERE animateur='$anim' "; 
    $res2=mysql_query($query2);
    echo "Equipe de : $anim <br>avec :";
    while($membre=mysql_fetch_array($res2))
    {
         echo $membre['membre'].","; 
     }
<a href="./equipe/.'$secteur'.'.php?anim='.'$anim'.>Voir cette équipe en détails</a>
}
mysql_close();


Ceci n'a pas été testé

Répondre à ceddec

2

kikadisa, le 2 nov 2006 à 19:41:17
  • +1

Non sa ne marche pas.
Il m'afiche toujours deux fois l'animateur.
Ce code est vraiment ch***t

<?php  //on se connecte à la base SQL
    $team=mysql_query("SELECT*FROM equipe WHERE secteur='$secteur'");
      while($equipe=mysql_fetch_array($team))
//on affiche le nom de l'animateur
         {
             $animateur=$equipe['animateur'];
?>
<p>Equipe de : <?php echo $animateur?><br/>avec : 
<?php
            $adherants=mysql_query("SELECT*FROM equipe WHERE animateur='$animateur'");
                  while($membre=mysql_fetch_array($adherants))
//on affiche les membre où l'on as le même animateur
                       {
                                echo $membre['membre'].',';
                         }
?>
<br/>
<!--lien vers l'équipe en détails -->
<a href="./equipe/<?php echo$secteur?>.php?anim=<?php echo$animateur?>&amp;page=equipe de <?php echo$animateur?>">
Voir cette équipe en détails</a><br/></p>
<?php
          }
mysql_close();
//on se déconnecte des connexion SQL
//fin de l'affichage des équipes  
?>


Ton script m'affiche la même chose mais avant il m'affichait rien

Répondre à kikadisa

3

kilian, le 2 nov 2006 à 20:23:50

Moi je verrais plutôt le tout en une requête, vu qu'on a déjà tout dans la première.
Ensuite on fait un nouveau tableau qui trie le tout par animateur.

<?
//Requête générale
$res=mysql_query("SELECT  animateur, membre FROM equipe WHERE secteur='$secteur' ORDER BY animateur");
/* On crée un tableau où chaque clé est un animateur, et pour chaque
    animateur on a encore un tableau avec la liste des membres associés 
    à lui.  C'est un tableau multidimensionnel.  */
while($tab=mysql_fetch_assoc($res))
{
         $infos[$tab['animateur'] ] []  = $tab['membre'];
}

/* Pour chaque animateur on affiche le nom.... */
foreach ( $infos as $animateur => $membres )
{
        echo "Equipe de $animateur:<br/>Membres: ";

        /* Pour chaque membre de cet animateur, on affiche le nom .... */
        foreach ( $membres as $membre )
        {
               echo "$membre ";
        }
}
..et le...le...enfin, non parce c'est...ya...quand...bah tu sais là le...

Répondre à kilian

4

 kikadisa, le 3 nov 2006 à 08:49:48

..et le...le...enfin, non parce c'est...ya...quand...bah tu sais là le...

Beh tu peut gratter un ticket de loto car sa à marcher du premier coup !!

Bravo la bete
Merci beaucoup pour te remercier je te fais plein de bizoux
Aller bonne journée
Bravo vous avez fait votre BA de la journée

Répondre à kikadisa
Collection CommentÇaMarche.net