Page 1 sur 1

utilisation multiple d'un resultat de requete sql

Posté : 17 févr. 2008, 13:32
par BeRoots
salut à tous :)

j'aimerai exploiter 2 fois un resultat de requete sql...
j'ai une requete qui me retourne toutes les categorie distinct d'une table. je voudrai afficher deux fois la liste de ces categories :-k

voici se que je fait:
            <form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">
                  <select name="categorie" tabindex="1" size="1" />
<?php
   // on affiche chacune des categories existantes dans le select
   while($table_sql = mysql_fetch_assoc($result))
   {
      $db_categorie = $table_sql['categorie'];
      echo "                     <option>".htmlentities($db_categorie,ENT_QUOTES,'ISO-8859-15')."</option>\n";
   }
?>
                  </select>
                  <select name="categorie2" tabindex="2" size="1" />
<?php
   // on affiche chacune des categories existantes dans le select
   while($table_sql = mysql_fetch_assoc($result))
   {
      $db_categorie = $table_sql['categorie'];
      echo "                     <option>".htmlentities($db_categorie,ENT_QUOTES,'ISO-8859-15')."</option>\n";
   }
?>
                  </select>
                  </form>
mon soucis est que je n'ai affichage que de la premiere liste :?
si quelqu'un a une idée à me soumettre :)
merci d'avance ;)

Posté : 17 févr. 2008, 13:58
par Sékiltoyai
Evidemment que tu ne l'as qu'une fois, le premier while te vide tes résultats.
Il faut que tu stockes les résultats dans un tableau avant de les utiliser…

Posté : 17 févr. 2008, 14:47
par BeRoots
oki, j'ai fait cela:
<?php
   // on recupere la liste des categories en db
   $sql = "SELECT DISTINCT(`categorie`) FROM tableX ORDER BY ordre_categorie ASC";
   $result = $connecteur->query($sql);
   // mise en tableau des resultats de la requete
   $table_sql = array();
   while($tableau = mysql_fetch_assoc($result))
   {
      $table_sql[] .= $tableau['categorie'];
   }
?>
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">
                  <select name="categorie" tabindex="1" size="1" />
<?php
   // on affiche chacune des categories existantes dans le select
   while($i < count($table_sql))
   {
      $db_categorie = $table_sql[$i];
      echo "                     <option>".htmlentities($db_categorie,ENT_QUOTES,'ISO-8859-15')."</option>\n";
      $i++;
   }
?>
                  </select>
                  <select name="categorie2" tabindex="2" size="1" />
<?php
   // on affiche chacune des categories existantes dans le select
   while($i < count($table_sql))
   {
      $db_categorie = $table_sql[$i];
      echo "                     <option>".htmlentities($db_categorie,ENT_QUOTES,'ISO-8859-15')."</option>\n";
      $i++;
   }
?>
                  </select>
                  </form>
cela fonctionne tres bien mais j'aimerai savoir si il n'y a pas moyen de simplifier un peu quand même :-k

si quelqu'un voit plus simple ;)

Posté : 17 févr. 2008, 14:51
par Jules Petibidon
Hello,

mysql_data_seek() est ton ami :)

Posté : 19 févr. 2008, 11:36
par BeRoots
OK merci :)
j'ai fait avec mysql_data_seek() et c'est le top ;)