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

energizer
Invité n'ayant pas de compte PHPfrance

11 nov. 2016, 13:16

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:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

11 nov. 2016, 13:22

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
Quand tout le reste a échoué, lisez le mode d'emploi...

energizer
Invité n'ayant pas de compte PHPfrance

11 nov. 2016, 13:46

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>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

11 nov. 2016, 14:23

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
Quand tout le reste a échoué, lisez le mode d'emploi...

energizer
Invité n'ayant pas de compte PHPfrance

11 nov. 2016, 15:08

<?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...

Mammouth du PHP | 2703 Messages

11 nov. 2016, 16:33

avec limit, donc il faut plutôt partir de ton premier code. qu'est-ce qu'il donne ?

energizer
Invité n'ayant pas de compte PHPfrance

11 nov. 2016, 16:45

Une erreur 500...