Utiliser une requete plusieurs fois

Résolu/Fermé
yoshiro Messages postés 497 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 18 avril 2018 - Modifié par yoshiro le 21/07/2010 à 07:32
yoshiro Messages postés 497 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 18 avril 2018 - 23 juil. 2010 à 06:17
Bonjour,
le titre explique ce que je veux faire !! En gros ces récupérer les résultats d'une requête plusieurs fois !! J'ai essayer mais je récupère le résultat que de la 1ere requête !!
Voici mon code :

$requete=mysql_query("Select * From articles ) 
echo('<select name="rub" class="petitchampinput"> <option value="" selected="selected">Toutes les categories</option>'); 
while($requeteart =mysql_fetch_array($requete)) 
{ 
     echo('<option value="'.$requeteart["art_cat"].'">'. $requeteart["art_cat"] .' </option>'); 
} 
echo('</select> 

<select name="rub" class="petitchampinput"> <option value="" selected="selected">Toutes les rubriques</option>'); 
while($requeteart =mysql_fetch_array($requete)) 
{ 
     echo('<option value="'.$requeteart["art_rub"].'">'. $requeteart["art_rub"] .' </option>'); 
} 


Je voudrais savoir comment faire pour récupère les résultats des 2 requêtes !!
Merci d'avance !!

3 réponses

Defouille Messages postés 388 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 15 novembre 2011 54
Modifié par Defouille le 21/07/2010 à 08:39
Bonjour,

il suffit que tu parcoures ton résultat une première fois pour le stocker dans un tableau, puis tu utilises ton tableau autant de fois que tu en as besoin pour l'afficher.

$requete=mysql_query("Select * From articles") ; 
$resultats = array(); 
while($requeteart =mysql_fetch_array($requete))  
 $resultats[] = $requeteart ; 

echo('<select name="rub" class="petitchampinput"> <option value="" selected="selected">Toutes les categories</option>');  
foreach($resultats as $resultat) 
     echo('<option value="'.$resultat["art_cat"].'">'. $resultat["art_cat"] .' </option>');  
echo('</select>'); 

echo('<select name="rub" class="petitchampinput"> <option value="" selected="selected">Toutes les rubriques</option>');  
foreach($resultats as $resultat) 
     echo('<option value="'.$resultat["art_rub"].'">'. $resultat["art_rub"] .' </option>'); 
echo('</select>');


Il y a seulement 10 types de personnes, ceux qui comprennent le binaire, et les autres...
1
yoshiro Messages postés 497 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 18 avril 2018 64
22 juil. 2010 à 00:17
oki merci !! J'ai suivi ton conseil et ça marche !! ^_^ !!

Mais j'ai un autre problème c'est que l'utilisateur peut choisir de sélectionner une seule catégorie et tous les rubriques ou de sélectionner qu'une catégorie !!
Par conséquent comment retourner le résultat !!

Voici mon code

if(isset($_POST['cat'])) $cat=$_POST['cat'];
if(isset($_POST['rub'])) $rub=$_POST['rub'];
$requete=mysql_query(Select * from articles where art_cat=$cat And art_rub=$rub;


Cette requêtte ne fonctionne pas si je décide que de sélectionner que la catégorie ou que la rubrique !!

Merci d'avance !!
0
Defouille Messages postés 388 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 15 novembre 2011 54
22 juil. 2010 à 08:49
Je ne comprend pas qu'est ce qui arrive du POST en fonction de ce que l'utilisateur à choisi.
Ne suffirait-il pas de faire une condition sur ce qui arrive par le POST et de faire une requête différente pour chaque condition ?
0
yoshiro Messages postés 497 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 18 avril 2018 64
23 juil. 2010 à 06:17
ouais c'est vrai mais je pensais qu'il y avait plus simple !! Merci !!
0