Version complète: sur le forum Webmaster Hub : [Résolu] limiter les résultats par page
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
kezoo
Bonjour, j'aimerais trouver un code pour afficher seulement 10 résultats par page et un lien en dessous avec :

page 1 - 2 - 3 ... (exemple à cet URL : http://www3.keohosting.net/yoyo210be/dwl_01.php )

Comment dois-je faire ?

merci smile.gif
snwoman49
Tu utilises une table mysql ou pas ,sinon avec sql tu faits LIMIT 0,10.
kezoo
oui, j'utilise une table SQL, merci, mais je ne sais pas comment cela peut fonctionner automatiquement par rapport au nombre de résultats,

il n'y aurais pas un code php pour ca ? smile.gif

merci
snwoman49
Voici un petit code que je viens de te faire.

CODE
<?php
//tu mets ca dans le bas de ton tableau//
$db = mysql_connect('localhost', 'pseudo', 'pass');
mysql_select_db('nom_de_la_base',$db);
$sql= "SELECT COUNT(id) as test FROM `essaie_tbl` ORDER BY `id` DESC";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
$nb = $data['test'];
if($nb >=0 && $nb <= 10)
{
echo"la le code de ton lien renseignant la page1";
}
elseif($nb >=10 && $nb<=20)
{
echo"la le code de ton lien renseignant la page2";
}
mysql_close($db);
?>
//Pour ton lien tu le faits avec deux variabme d'en l'url de la forme mapage.php?debut=0&fin=10
//Ensuite dans la page du dessus tu fait un get sur ces 2 variables
//$debut= $_GET[debut];
//$fin= $_GET[fin];
//Ensuite dans ta requete select tu faits ca:
// "SELECT * FROM `test_tbl` LIMIT "$debut","$fin" ODER BY id DESC"
// Et voila la logiquement ca marche.
//a+
kezoo
Merci Beaucoup snwoman49 !!!!!! IMSTP3.gif
snwoman49
Ah oui j'oubliais que is jamais c'est entre 10 et 20 par exemple il ne faut pas oublier de faire le premier lien entre 0 et 10
ca fera un <a href="mapage.php?debut=0&fin=10>1</a> et <a href="mapage.php?debut=10&fin=10>2</a>
kezoo
merciiiiii biggrin.gif trop bien ! ^_^
snwoman49
Parceque si tu veux la requete limit le premier chiffre veut dire que ca part du dixième trucs par exemple et le second chiffre veut dire que ca le déplace jusqu'au 10ème trucs suivant.
Boo2M0rs0
Perso je fais souvent comme ça:
CODE

<?php
//Nombre de résultat par page
$par_page = 10;

//la page actuelle
if( !isset($_GET['p']))
$page = int_val($_GET['p']);
else
$page = 0;

//On compte le total de résultat de la requête
$sql_total = mysql_query("SELECT count(*) FROM ta_table");
$total = mysql_result($sql_total,0);

//Le total de pages arrondi à l'unité supérieure
$n_pages = ceil($total / $par_page);

//On écrit le code pour chaque page maintenant
for( $i=0; $i < $n_pages; $i++)
{
if( $i == $page) //si c'est la page en cours
echo ($i+1) . " -";
else
echo "<a href=\"index.php?p=$i\">" . ($i+1) . "</a> -";

}


//Puis pour la requête qui affiches tes résultats
$sql = "SELECT * FROM ta_table LIMIT " . ($page * $par_page) . " , $par_page";
?>

La boucle while peut être placée là où les différents liens vers les pages doivent apparaitrent.

edit: boucle for, pas while:p
kezoo
resalut, j'ai un probleme biggrin.gif


voici ce qu'il me note :
CITATION
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in etc... on line 50



et voici ce qui se trouve dans les lignes 50-51...

CITATION
$retour = mysql_query('SELECT * FROM news LIMIT "$debut","$fin" ODER BY id DESC');
while ($donnees = mysql_fetch_array($retour))
{


je suis completement perdu wacko.gif

quelle est mon erreur ? biggrin.gif Merci
kezoo
pour moi, c'est certainement l'hébergeur, car hier aussi, il m'affichait ce message et ce matin, Parti !

et aujourd'hui, il renote le meme style de message

ou bien je suis fou IMSTP6.gif
sarc
CITATION
ODER BY id DESC

Moi je flaire une faute d'orthographe wink.gif
Essaye avec ORDER on sait jamais tongue.gif
kezoo
Joli !!!!!!!!!!!!!!!! merci !

fallait le voir ca ! là je dis bravo ! biggrin.gif
kezoo
re......bonjour, smile.gif

j'ai parfaitement su transmettre les variables grâce à GET :

$debut= $_GET[debut];
$fin= $_GET[fin];

mais j'ai un probleme dans le query SQL :

voici le code :
CITATION
$retour = mysql_query('SELECT * FROM news LIMIT "$debut","$fin" ORDER BY id DESC');

l'erreur vient certainement du rouge

(car j'ai essayé avec echo et les données du get s'affichent correctement)

et j'arrive toujours à un message d'erreur de ce genre :

CITATION
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in etc... on line 50

Quelqu'un peut m'aider ? smile.gif peut-etre y a-t-il une erreur dans le code ?
sarc
Oui il y a une erreur, les apostrophes empêchent les variables de s'exprimer...
Déjà, il vaut mieux séparer l'écriture de la requète avec son exécution, pour pouvoir afficher la requète le cas échéant..

Essaye avec ce code :
CODE
$requete = "SELECT * FROM news LIMIT $debut, $fin ORDER BY id DESC";
$retour = mysql_query($requete);
snwoman49
Et il faut mettre LIMIT après ORDER BY.
Si tu veux voir un exemple en ligne du code va sur ce lien.
ici
Si tu as des questions n'hésite pas à me les poser
kezoo
merci bien, c'est super sympa thumbup.gif

j'essaye dés que j'ai le temps et je vous dis quoi biggrin.gif
kezoo
ca marche super bien ! Merci à vous pour votre aide d_clap_20.gif
snwoman49
De rien Kezoo.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.