1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
<?php
//on verifie si la variable $pg est definie, sinon on l'initialise a 1
if(!isset($_GET['pg'])){
$pg = 1;
}else{
$pg = $_GET['pg'];
}
//on verifie si la variable qui est censcée etre un numero de page est bien un chiffre,
//cela evite qu'un gogole vous pirate avec une injection mysql
if(!is_numeric($pg)){
$pg = 1;
}
//connexion mysql
$link = mysql_connect("localhost", "root", "motdepasse")or die("Erreur de connexion: ".mysql_error($link));
//chois d'une bdd
mysql_select_db("quizz", $link)or die("Erreur de connexion: ".mysql_error($link));
//c'est le nb d'enregstrements à affiche par page:
$enreg_par_pg = 5;
//fonction qui affiche les liens vers les autres pages, ainsi que les liens page suivante et page precedente:
function pgs($enreg_par_pg, $pg, $link){
//c'est la requete qui doit permettre le nombre de résultats total qui va etre reparti sur plusieurs pages
$res = mysql_query("SELECT * FROM questionnaire", $link)or die("Erreur MySQL: ".mysql_error($link));
$nb_enreg = mysql_num_rows($res);
//on calcule le nb de pages
$nb_pg_rounded = ceil( $nb_enreg / $enreg_par_pg );
//numero de page precedente
$pp = $pg - 1;
//numero de la page suivante
$ps = $pg + 1;
//si l'utilisateur se se trouve pas a la page n°1
if($pg != 1){
//on affiche un lien page précedente
//si le script a besoin d'autre variable pour fonctionner ne pas oublier des les transmettre en ajoutant &var=$var...
echo "<a href='?pg=$pp'><<page précédente</a>";
}
//definition d'une variable pour la boucle
$i=1;
//la syntaxe do...while permet d'effectuer la boucle au moins une fois!
do{
//si $i n'est pas egal au numero de la page sur laquelle se trouve l'utilisateur...
if($i != $pg){
//...on affiche un lien vers cette page
//idem: si votre script a besoin d'autre variable pour fonctionner n'oublier pas des les transmettre en ajoutant &var=$var...
echo " <a href='?pg=$i'>$i</a>\n";
}else{
//...sinon on affiche simplement le n° de la page actuelle
echo " $i ";
}
//incrémentation de la viariable de la boucle
$i++;
//on recommence tant que $i n'atteint pas le numero de la derniere page
}while($i <= $nb_pg_rounded);
//si l'utilisateur n'est pas a la derniere page...
if($pg != $nb_pg_rounded){
//...on affiche un lien page suivante
//idem: si votre script a besoin d'autre variable pour fonctionner n'oublier pas des les transmettre en ajoutant &var=$var...
echo " <a href='?pg=$ps'>page suivante>></a>";
}
}
//ici on calcule à partir de quel enregistrement il faut afficher $enreg_par_pg résultats
$limit = $enreg_par_pg*$pg-$enreg_par_pg;
echo '<form method="post" action="page3.php">';
//c'est la requete qui selectione $enreg_par_pg resultats
$req = mysql_query("SELECT * FROM questionnaire LIMIT $limit, $enreg_par_pg")or die("Erreur MySQL: ".mysql_error($link));
while ($quizz=mysql_fetch_assoc($req)){
//$num prend la valeur trouvé dans le champs 0
$num=$quizz['numquest'];
//$question prend la valeur trouvé dans le champs 1
$question=$quizz['question'];
//$reponse1 prend la valeur trouvé dans le champs 2
$reponse1=$quizz['rep1'];
//$reponse2 prend la valeur trouvé dans le champs 3
$reponse2=$quizz['rep2'];
//$reponse3 prend la valeur trouvé dans le champs 3
$reponse3=$quizz['rep3'];
//$reponse4 prend la valeur trouvé dans le champs 4
$reponse4=$quizz['rep4'];
//$repexact prend la valeur trouvé dans le champs 5
$repexact=$quizz['rep'];
echo '<h3>';
//Affichage à l'ecran du numero de la question et de la question
echo $num.") ".$question;
echo "<br />";
//Affichage du choix des réponses avec des radiobutton
echo '<h3>';
echo '<input type="radio" name="rep'.$num.'" value="1" />'.$reponse1.'<br />';
echo '<input type="radio" name="rep'.$num.'" value="2" />'.$reponse2.'<br />';
echo '<input type="radio" name="rep'.$num.'" value="3" />'.$reponse3.'<br />';
echo '<input type="radio" name="rep'.$num.'" value="4" />'.$reponse4.'<br />';
echo "<br />";
echo "<br />";
echo '</h3>';
echo '</h3>';
}
//Renseignement du nom pour enregistrement dans la base
echo " Quel est votre nom ?<br />";
echo $nom=" <input type=\"text\" name=\"nom\" value=\"Moi\" size=\"20\"><br /> ";
echo '<input type="submit" value="Valider" /></form>';
//on appelle la fonction précédemment créée pour afficher les liens vers les autres pages, vous pouvez l'appeler plusieurs fois s'il le faut
echo "<br>";
pgs($enreg_par_pg, $pg, $link);
?> |
Partager