Retenir les id des données déja affichées BDD

Fermé
leuntout Messages postés 67 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 11 octobre 2010 - 29 mars 2010 à 20:43
leuntout Messages postés 67 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 11 octobre 2010 - 30 mars 2010 à 18:45
Bonsoir,
Je voudrais un coup de main pour mon script ;
Je voudrais retenir les id des entrées BDD mysql qui ont déja été affichées pour éviter de ressortir plusieurs fois les mêmes. Donc avoir qqc de ce genre : si id déja sortie, choisir autre enregistrement.
J'ai essayé avec des array mais je n'arrive pas.
Si vous pouviez me donner une piste, ce serait cool.
Merci

3 réponses

leuntout Messages postés 67 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 11 octobre 2010
Modifié par leuntout le 30/03/2010 à 00:48
J'ai trouvé une solution, mais qui va surement faire hurler ceux qui s'y connaissent...

Donc si vous êtes choqués, et que vous avez une façon plus "propre" de faire la même chose, n'hésitez pas à me le faire savoir!

<?php
$recup_quest=mysql_query("SELECT * FROM questions_$categorie ORDER BY RAND()"); //selection des questions 
$quest=mysql_fetch_array($recup_quest); 
if (in_array($quest['id_quest'], $array)) { // si la question a déja été posée 
 header("Location: questionnaire.php"); //on recharge 
 exit(); 
} 
else {         // si la question n'a jamais été posée 
 $array[]=$quest['id_quest']; // on enregistre son id pour ne pas la reposer 
}
?>
0
Alain_42 Messages postés 5358 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 901
30 mars 2010 à 14:46
Oui mais gros problème car je suppose que ce script est appelé à chaque fois qu'une question doit être soumise à l'utilisateur

Et comment $array est mémorisé d'un appel de script à l'autre
En effet php n'est pas un programme qui tourne en permanence mais un script qui s'execute à chaque appel d'une page, donc le contenu des variables est perdu

donc ce que tu peux faire c'est mémoriser dans ta bdd dans un champ supplémentaire 0 / 1 suivant que la question a déjà été posée ou non
0
bloodchecker Messages postés 339 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 29 février 2012 35
30 mars 2010 à 15:50
ou alors tu transforme quest en $_SESSION[quest]
0
leuntout Messages postés 67 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 11 octobre 2010
30 mars 2010 à 18:45
Salut!
Oui, c'est ce que j'ai fais, j'ai mis en session. Comme ca, quand ma page de traitement est terminée, elle retourne su la page questionnaire, et récupère les id déja utilisés.
Mais bon, ca me fait une requête à chaque fois.
Oh, le principal c'est que ca marche et que j'ai compris ce que je faisais...
Merci!
0