Comment dire de créer une seconde page lorsque... [PHP/SQL] - Programmation
Marsh Posté le 30-01-2002 à 18:45:45
En SQL tu peut déjà limiter la requette à nombres d'enregistrement X :
SELECT [champs] FROM [tables] WHERE [conditions] LIMIT [nombre de résultats];
ça c pour la première page. Après si la valeur du nombres d'enregistrement est dans une variable php c très simple de passer de page en page, en effet la fonction LIMIT permet d'utiliser deux paramètres, le premier étant la position du premier enregistrement et le second le nombre... Ainsi :
SELECT [champs] FROM [tables] WHERE [conditions] LIMIT [position],[nombre de résultats];
Exemple réel, affichage des 10 premiers messages :
SELECT * FROM messages LIMIT 10;
Affichage des 10 suivants :
SELECT * FROM messages LIMIT 10,10;
Et ainsi de suite...
Marsh Posté le 26-02-2002 à 20:31:22
Pour en revenir au dire de bruce, il faut ke je créer une page a chak fois alors ?
1 page pour affiché les 10 premeir resultat par expl, ki aura pour code : SELECT * FROM messages LIMIT 10;
1 seconde page pour afiché els 10 suivant SELECT * FROM messages LIMIT 10,10;
etc...
mais, pas moyen kil créer la page tout seul ? ou ke y ait qu'une page servant de modele et kil affiche en premeir temps les 10 premier resultat, un bouton page suivante lui disant d'affiché les 10 suivant, etc...
comment faire ca ?
merci
Rainckill
Marsh Posté le 26-02-2002 à 21:21:00
Pas forcément tu peux mettre des variables dans le LIMIT non ? (sorry si je me trompe je suis un peu nb )
[jfdsdjhfuetppo]--Message édité par HORNY-GRANDCORNU--[/jfdsdjhfuetppo]
Marsh Posté le 26-02-2002 à 22:35:25
HORNY-GRANDCORNU a écrit a écrit : Pas forcément tu peux mettre des variables dans le LIMIT non ? (sorry si je me trompe je suis un peu nb ) |
Ouep par exemple tu mets 2 boutons sur ta page qui renvoies 2 valeurs possibles d'un arg (disons 'nb', genre 30 et 50 si tu était au numéro 40.
Et ensuite il te suffit de faire la requête :
$mysql_result = mysql_query ("SELECT * FROM messages LIMIT $nb, 10" );
Et n'oublies pas de changer la valeur renvoyée par chacun des 2 boutons à chaque fois
Marsh Posté le 27-02-2002 à 14:08:11
je comprend pas tres bien la...
les bouton la... comment les faire ? de simple lien ? menant vers ou ? (dsl d'etre con :-/ )
mais si les bouton doivent changer pour chak pagge, ca veut dire kil faut ke je fasse toujour utant de page kil y aura de série de 10 posts...
merci de m'expliké en intégralité
Marsh Posté le 27-02-2002 à 14:27:07
rainckill a écrit a écrit : je comprend pas tres bien la... les bouton la... comment les faire ? de simple lien ? menant vers ou ? (dsl d'etre con :-/ ) mais si les bouton doivent changer pour chak pagge, ca veut dire kil faut ke je fasse toujour utant de page kil y aura de série de 10 posts... merci de m'expliké en intégralité |
Mais non t'es pas con... tu débutes c'est tout
ta page qui s'appelle liste.php (exemple)
dedans tu utilises la requête que je t'ai passé avec ce test avant :
if (!$nb or $nb < 0) {$nb = 0;};
puis la requête, le tableau qui affiche le résultat.
puis à l'endroit ou tu veux mettre les 2 liens(précédent et suivant), tu mets ça :
<?if ($nb >= 10) {
?><a href='liste.php?nb=<?echo $nb - 10?>>Précédent</a><?
}?>
<a href='liste.php?nb=<?echo $nb + 10?>>Suivant</a>
Si ton fichier ne s'appelle liste.php, pas tu remplaces par le nom du fichier
Donc là avec une seule page tu peux afficher tout tes messages.
Bon là c'est très rapide, on peut faire plus propre
Marsh Posté le 27-02-2002 à 14:27:23
allez je me devoue pour la premiere (et derniere) fois que je viens ici ...
alors pr ta page de pagination, tas une page PAGE.php
que tu peux appeler ainsi :
PAGE.php
PAGE.php?limit=XX (pr reprendre lex de bruce) ou XX = 10 20 30 40 50 60 ....
code-algo (un sacré melange ) de PAGE.php :
si not exist ($limit)
$limit = 0;
$sql = SELECT * FROM messages LIMIT $limit,10;
for $i=1->10
affichage de la ligne
afficher <a href=PAGE.php?limit=$limit-10>BACK</A>
afficher <a href=PAGE.php?limit=$limit+10>NEXT</A>
voila, mais a mo avis, la lecture d'un bon tutorial et des exeples est largement conseillée
[jfdsdjhfuetppo]--Message édité par beleg--[/jfdsdjhfuetppo]
Marsh Posté le 27-02-2002 à 14:29:56
beleg a écrit a écrit : [...] afficher <a href=PAGE.php?limit=$limit-10>BACK</A> afficher <a href=PAGE.php?limit=$limit+10>NEXT</A> [...] |
Par contre je crois pas que php va calculer $limit-10 comme c'est écrit là
Marsh Posté le 27-02-2002 à 14:32:02
oui c clair, mais jai dit que j'ecrivais pas du php ...
echo "<a href=\"PAGE.php?limit="+($limit-10)+"\">BACK</A>";
echo "<a href=\"PAGE.php?limit="+($limit+10)+"\">NEXT</A>";
doit etre mieux mais ca fait longtemps que jai pas touché du php, mais c un langage assez sympa ...
[jfdsdjhfuetppo]--Message édité par beleg--[/jfdsdjhfuetppo]
Marsh Posté le 27-02-2002 à 14:39:51
beleg a écrit a écrit : oui c clair, mais jai dit que j'ecrivais pas du php ... echo "<a href=\"PAGE.php?limit="+($limit-10)+"\">BACK</A>"; echo "<a href=\"PAGE.php?limit="+($limit+10)+"\">NEXT</A>"; doit etre mieux mais ca fait longtemps que jai pas touché du php, mais c un langage assez sympa ... |
ha oups désolé
Ouais en fait pour le echo, après ça dépend des préférences, en général je préfère mettre le code HTML en dehors des balises php , quite à écrire <?echo $a?> en plein milieu, pour pouvoir profiter de la coloration syntaxique.
Marsh Posté le 25-06-2002 à 01:16:34
bon dsl de revenir si tard mais ca amrche pas !!!
je fé <a href='index.php?txt=img_aff&cat00=screenshoots&nb=$nb+2'>Suivant</a>
et il maffiche la meme page ki est déjà affiché... et kan je revais sur le lien, il affiche toujours 0+2 et aps 2+2 comme ca devré letre...
ou es le pb ??
Marsh Posté le 11-10-2002 à 23:09:04
rainckill a écrit a écrit : bon dsl de revenir si tard mais ca amrche pas !!! je fé <a href='index.php?txt=img_aff&cat00=screenshoots&nb=$nb+2'>Suivant</a> et il maffiche la meme page ki est déjà affiché... et kan je revais sur le lien, il affiche toujours 0+2 et aps 2+2 comme ca devré letre... ou es le pb ?? |
Le $nb+2, faut qu'il soit calculé par PHP. Donc plutot un truc comme ca :
<a href='index.php?txt=img_aff&cat00=screenshoots&nb=<?echo ($nb+2)?>'>Suivant</a>
Marsh Posté le 30-01-2002 à 18:37:50
Comment dire de créer une seconde page lorsque le nombre d'enregistremnt dans une table est atteint un kota définis
merci