Listing de réponses d'une requête sur plusieurs pages

Listing de réponses d'une requête sur plusieurs pages - PHP - Programmation

Marsh Posté le 02-08-2002 à 09:57:44    

Salut,
 
Je suis débutant en php et je dois faire la chose suivante :
j'ai une requête SQL toute simple (select toto from table where titi=0)
je veux afficher les résultats dans un tableau (ça, je sais faire).
Mais où je ne sais comment m'y prendre, c'est pour n'afficher dans la page principale que les 20 premières réponses, puis dans une deuxième les 20 suivantes etc. avec en bas de chaque page, le n° des pages de réponses affectées d'un lien.
Bref, un truc très simple.
Mais j'aimerai faire ça le plus proprement possible...
(et me connaissant, ça risque de ne pas être le cas!  ;) )
 
Merci d'avance

Reply

Marsh Posté le 02-08-2002 à 09:57:44   

Reply

Marsh Posté le 02-08-2002 à 10:06:51    

un peu de pub pour master Sh@rdar : une de ses reponses sur mon topic sur les forums :
 

Citation :


tu as deux options :
 
1-faire des flèches SUIVANT/PRECEDENT
 
soit :
 
$nmpp = 10;  // le nombre de message par page
$ntotal= 50; // le nmbre total de résultat à afficher (ça vient d'une requête COUNT() sur l'ensemble des posts)
// $début c'est le n° du premier post à afficher
 
dans ta requête qui sert à afficher la page en cours
tu as la clause LIMIT $début,$nmpp  
 
<?
// on démarre au post 0 par défaut
if (!isset($debut)) $début =0;
 
//  si le numéro du premier post  affiché est supérieur au nombre  
// de post par page, on affiche le lien "PRECEDENT"
//  
if ($debut >= $nmpp) echo "<a href=\"tapage.php?debut=". ($debut-$nmpp)."\">PRECEDENT</a>";
 
 
// si il reste encore des posts après le post en cours,
// on affiche le lien "SUIVANT"
if ($debut + $nnp < $ntotal) { echo "<a href=\"tapage.php?debut=".($debut+$nnp)."\">SUIVANT</a>";
?>
 
 
2 - Afficher directement toutes les pages pour proposer un accès direct (comme sur le forum HFR)
 
soit :
 
$nmpp = 10;  // le nombre de message par page
$ntotal= 50; // le nmbre total de résultat à afficher
// $npage c'est le n° de la page en cours
 
dans ta requête qui sert à savoir quels messages tu dois afficher sur la page
tu as une clause LIMIT ($npage*$nmpp),$nmpp
 
<?
// on démarre à la page 0
if (!isset($npage)) $npage =0;
 
 
// on boucle pour afficher chacun des liens correspondant à une page
 
for ($i=0; $i<$ntotal/$nmpp; $i++) {
 
 // si la page en cours est différent on affiche le lien pour y accèder
 if ($i<>$npage) echo " <a href=\"tapage.php?npage=$i\">".$i+1."</a>  
 
 // sinon on affiche juste le n° de page
 else echo $i+1;
 
}
?>  
 


---------------
All we need is a soul revolution
Reply

Marsh Posté le 02-08-2002 à 10:17:30    

Et pour l'affichage du tableau sur chaque page :
1ère page : 20 premières réponses
2ème page : 20ème à 40ème réponse
etc.
 
Comment dois-je modifier ma requête ?
(pour récupérer uniquement une partie des réponses)
 
Merci en tous cas !  :jap:

Reply

Marsh Posté le 02-08-2002 à 10:35:34    

Thocan a écrit a écrit :

Et pour l'affichage du tableau sur chaque page :
1ère page : 20 premières réponses
2ème page : 20ème à 40ème réponse
etc.
 
Comment dois-je modifier ma requête ?
(pour récupérer uniquement une partie des réponses)
 
Merci en tous cas !  :jap:  




Tu mets une variable que tu incrémente (ou décrémente) de 20 quand tu cliques sur suivant (ou précédent).
Tu rajoute dans ta requete cette variable (là ou commencera l'affichage) et Limit 20

Reply

Marsh Posté le 02-08-2002 à 11:29:43    

Oki. Thanks, je vais essayer avec ça.  :jap:

Reply

Marsh Posté le 02-08-2002 à 15:00:49    

Nickel. Un grand merci !  :)

Reply

Marsh Posté le 02-08-2002 à 15:12:02    

2Rien  :hello:

Reply

Marsh Posté le 02-08-2002 à 15:26:00    

ca fait plaisir que t pose cette question et qu un gentil phpeiste t repondu car moi aussi je cherchais ce systeme
 :love:


---------------
-= La force n est plus en moi... =-
Reply

Marsh Posté le 02-08-2002 à 15:59:01    

Bahh... y'a tout de même quelques correctifs à y apporter mais au moins j'avais l'essentiel de la trame...
 
Sinon, Dieu seul sait ce que j'aurai inventé...  :sarcastic:  :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed