[SQL] Lire champs les uns apres les autres

Résolu/Fermé
Yann - 1 mars 2006 à 09:45
 Yann - 2 mars 2006 à 08:13
Bonjour !
je débute. J'ai une table de questions dans ma bdd. Sur mon site je ne veux en afficher qu'une par page puis passer a la suivante. Ca marche tant que j'utilise des ID et qu'ils se suivent mais comme de temps en temps il faut que je supprime une question (Avec une requete SQL "DELETE" en php) les ID ne se suivent plus dans ma table. Donc si j'ai supprimé ma question 2, les ID passent de 1 a 3 et dans mon questionnaire la question 2 affiche donc vide. Sur un autre site on m'a conseillé de ne pas creer de colonne ID. Dans ce cas quel moyen ya t-il pour passer a la question suivante ?
Infiniment merci.

5 réponses

fabrice11901
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
1 mars 2006 à 10:37
Salut
Je comprend pas trop ton problème mais...
En fait si dans ta table sql tu as un champ questions qui contient 100 question et que tu veux afficher la première, la seconde dans un ordre bien précis tu peux faire :
connexion
selexion table :
$requete= ("select question from questionnaire order by id desc");
while ($donnees =
mysql_fetch_array
($requete) )
{
?>
<br> echo $donnees['question']; } ça te donne les questions un après l'autre. P.S j'ai écrit vite fait ce code y a des erreurs mais c à peu près ça...
0
Salut,
Ca marcherait si je voulais afficher toutes les questions sur une meme page mais je voudrais une seule question par page en fait, je cliquerais sur question suivante et j'aurais la question 2 toute seule sur une page etc.
T'a une idée ?
0
fabrice11901
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
1 mars 2006 à 10:55
re,
Je ne sais pas si ça marcherai mais mettre les questions dans une variable session par exemple tu penses pas que c'est possible?
0
Oui c'est vrai j'ai fait ça, puis j'incrémente d'1 a chaque tour, mais le probleme, c'est que comme je veux pouvoir effacer des questions de temps en temps, apres, les ID ne se suivent plus de 1 en 1.
0
fabrice11901
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
1 mars 2006 à 11:06
re,
Et pourquoi dans ta table sql tu mets pas un champ question1, question 2... Comme ça à la page qui correspond à la question2 tu va chercher dans ta table la question2 et tu te fais un espace à toi ou tu met les questions avec un formulaire, tu les supprimes, tu les modifis?
0
Pour les modifs ca irais mais avec 100 question si je supprime la 50eme ca fait un trou non ? j'ai essayé de combler le trou avec un update mais c'est lourd et en plus ca marche pas :(
T'en pense quoi ?
0
Je vais essayer de faire ca : lorsque je supprime une question X, sql attriburait le numero de la question disparu a l'ID le plus haut !
Merci pour l'inspire.
0
fabrice11901
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
1 mars 2006 à 11:43
re,
Ben si pour la première fois tu remplis tes 100 questions, et que deux jours après tu veuillez modifier le champ20 tu fais un update question20 et ça marche ! ou est ton problème?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
C'est bon j'ai fais ca, ca marche : if (isset($_GET['supprimer_question']))
{
mysql_query("DELETE FROM quizz WHERE ID = ".$_GET['supprimer_question']); // Requete SQL pour supprimer la question voulue
$totalquestion = mysql_query("SELECT COUNT(ID) AS total FROM quizz");
$val = mysql_fetch_array($totalquestion);
$derniere_question = $val['total']+1;
mysql_query("UPDATE quizz SET ID = '".$_GET['supprimer_question']."' WHERE ID = ".$derniere_question);
}
0