utilisation multiple d'un resultat de requete sql

Mammouth du PHP | 843 Messages

17 févr. 2008, 13:32

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 ;)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

ViPHP
ViPHP | 5924 Messages

17 févr. 2008, 13:58

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…

Mammouth du PHP | 843 Messages

17 févr. 2008, 14:47

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 ;)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Eléphant du PHP | 259 Messages

17 févr. 2008, 14:51

Hello,

mysql_data_seek() est ton ami :)

Mammouth du PHP | 843 Messages

19 févr. 2008, 11:36

OK merci :)
j'ai fait avec mysql_data_seek() et c'est le top ;)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non: