Page 1 sur 1

Afficher résultat par résultat en cliquant sur un bouton

Posté : 11 nov. 2016, 13:16
par energizer
Bonjour,

Ma bdd est la suivante :
_________________________
id | Questions
_________________________
1 | Question numéro 1
_________________________
2 | Question numéro 2
__________________________
3 | Question numéro 3
_________________________
4 | Question numéro 4
_________________________
et ainsi de suite...


Je cherche à afficher sur une page, les questions les unes après les autres (pas toutes les questions à la suite).
Je voudrais qu'en cliquant sur un bouton, cela m'affiche la question 2. En recliquant... la question 3... et ainsi de suite.
Tout en masquant les précédentes questions affichées.

Ma page ressemblerait à ça :

Question :
Question numéro 1

______________________________
|Aller à la question suivante|
______________________________


Et la page suivante :

Question :
Question numéro 2

______________________________
|Aller à la question suivante|
______________________________


Je pense que cela ne doit pas être très compliqué, mais comme je débute, j'ai quelques difficultés. :(
Je vous remercie d'avance pour votre aide. :wink:

Re: Afficher résultat par résultat en cliquant sur un bouton

Posté : 11 nov. 2016, 13:22
par @rthur
Bonjour,

Qu'as-tu essayé ? Qu'est-ce qui ne marche pas ?

Si tu ne sais pas comment faire, voici un tuto qui explique comment lire les données d'une bdd et les afficher dans une page web :
https://openclassrooms.com/courses/conc ... -donnees-2

Re: Afficher résultat par résultat en cliquant sur un bouton

Posté : 11 nov. 2016, 13:46
par energizer
J'ai essayé de faire quelque chose avec "LIMIT" :
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', 'root');
mysql_select_db('mabase'); // Sélection de la base
?>
<html>
<head>
<title>Questions</title>

</head>
<body>
<?php
//On récupère la dernière valeur de x
$x = $_GET['debut'];
//On fixe z et on détermine t
  $sql = "SELECT * FROM listequestions";
  $req = mysql_query($sql);
$t = mysql_num_rows($req);
$z = 2;
//On forme la requête SQL
$sql = "SELECT * FROM listequestions ORDER BY id DESC LIMIT $x,$z;";
//On prépare les nouvelles valeurs de x et y
$y = $x - $z;
if($y < 0)
  $y = 0;
$x = $x + $z;
//Doit-on afficher le bouton "précédent" ?
if($x > $z)
  echo "<a href="resultats.php?debut=$y">Page précédente</a>";
//Doit-on afficher le bouton "suivant" ?
if($x < $t)
  echo "<a href="resultats.php?debut=$x">Page précédente</a>";
?>


</body>
</html>

Re: Afficher résultat par résultat en cliquant sur un bouton

Posté : 11 nov. 2016, 14:23
par @rthur
LIMIT en SQL c'est pour limiter le nombre de résultats retourner par ta requête.
Si tu veux filtrer tes résultats par des critères particulier, il faut que tu utilises WHERE

Re: Afficher résultat par résultat en cliquant sur un bouton

Posté : 11 nov. 2016, 15:08
par energizer
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', 'root');
mysql_select_db('mabase'); // Sélection de la base
?>
<html>
<head>
<title>Questions</title>

   
</head>
<body>
<?php
// lancement de la requete
$sql = 'SELECT questions FROM listequestions WHERE id = "1"';

// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// on recupere le resultat sous forme d'un tableau
$data = mysql_fetch_array($req);

// on libère l'espace mémoire alloué pour cette interrogation de la base
mysql_free_result ($req);
mysql_close ();
?>
Question :<br />
<?php echo $data['questions']; ?>


</body>
</html>
En faisant cela j'ai seulement la question dont l'ID est égale à 1. Comment je peux faire pour que sur la page suivante j'ai la question dont l'ID est 2... Et ainsi de suite ?
Je ne sais pas si je suis sur la bonne voie...

Re: Afficher résultat par résultat en cliquant sur un bouton

Posté : 11 nov. 2016, 16:33
par or 1
avec limit, donc il faut plutôt partir de ton premier code. qu'est-ce qu'il donne ?

Re: Afficher résultat par résultat en cliquant sur un bouton

Posté : 11 nov. 2016, 16:45
par energizer
Une erreur 500...