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

leuntout Messages postés 75 Statut Membre -  
leuntout Messages postés 75 Statut Membre -
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

  1. leuntout Messages postés 75 Statut Membre
     
    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
  2. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
    1. bloodchecker Messages postés 361 Statut Membre 35
       
      ou alors tu transforme quest en $_SESSION[quest]
      0
  3. leuntout Messages postés 75 Statut Membre
     
    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