Afficher des données dynamiques sur plusieurs pages

Afficher des données dynamiques sur plusieurs pages - PHP - Programmation

Marsh Posté le 24-10-2002 à 16:22:42    

Bonjour à tous,
 
Voilà j'ai un contenu de news pour un site dans une base de donnée, et j'aimerai l'afficher sur une page déjà faite en .php mais voilà j'aimerai pouvoir en afficher par exemple une dizaine par page et qu'il me fasse un lien vers d'autres pages si par exemple le nombre max de news est dépassé. En gros 10 news sur une page s'il y en a une 2ème et bien un lien vers la page suivante avec l'affichage des 10 news suivantes.
 
J'éspère que vous voyez ce que je veux dire.
 
je voulais savoir si qqun avait déjà un bout de code qui pourrait m'aider ou bien me donné la démarche à suivre pour le coder.
 
Je vous remercie vraiment d'avance pour l'aide que vous pourrez m'apporter.
 
Cordialement
 
Snake-X


---------------
http://www.xboxlive.fr
Reply

Marsh Posté le 24-10-2002 à 16:22:42   

Reply

Marsh Posté le 24-10-2002 à 16:26:09    

Si vous pouviez aussi m'aidez en ce qui concerne le passage des paramètres ...
 
Merci beaucou^p


---------------
http://www.xboxlive.fr
Reply

Marsh Posté le 24-10-2002 à 16:29:35    

Sous MySQL tu peux faire une requête du genre:
 
SELECT * FROM TaTable LIMIT XX, YY
 
avec XX ton numéro de départ et YY le nombre d'enregistrements à afficher. Par exemple, si tu veux afficher 25 enregistrements à partir du 50° (ce qui correspondrait à la 3° page de 25 enregistrements chacune):
 
SELECT * FROM TaTable LIMIT 50, 25
 
Ca répond à ta question?

Reply

Marsh Posté le 24-10-2002 à 16:31:55    

A l arrache
 
Compter le nombre nbre de news  
$total=(mysql_num_rows)
dire le nombre de news max par page
if (!$prem) $prem=0
$max= 10
 
faire ta requete du genre
select
from
limit $prem, $max
 
---affichage---
 
if( $total > $max) {
$prem=$prem+10;
<a href=?prem=$prem>page suivante</a>
}


Message édité par Sebastien le 24-10-2002 à 16:34:26
Reply

Marsh Posté le 24-10-2002 à 16:33:26    

Heu oui mais en fait je ne sais jamais car en fait le nombre augmente continuellement. Les news que je devrais afficher ont un idicatif d'affichage 1 ou 0. Et en fait tout ceux qui ont la valeur 1 ne font pas partis de l'archivage et 0 seront affiché en tant qu'archive. Donc il faut aussi que je récupère mais bon je dois pouvoir faireun select sur tout ce qui les 20 premiers qui ont un 0 ce que je dois pouvoir faire sans problèmes mais c'est surtout pour les pages suivantes que çà me pose un problème et pour le passage de paramètres je suppose qu'il faut que je passe en paramètres les 20 suivants affiché par exemple.


---------------
http://www.xboxlive.fr
Reply

Marsh Posté le 24-10-2002 à 16:34:26    

Sebastien a écrit a écrit :

A l arrache
 
Compter le nombre nbre de news  
$total=(mysql_num_rows)
dire le nombre de news max par page
if (!$prem) $prem=0
if (!$max) $max= 9
 
faire ta requete du genre
select
from
limit $prem, $max
 
---affichage---
 
if( $total > $max) {
$prem=$prem+10;
$max=$max+10;
<a href=?max=$max&prem=$prem>page suivante</a>
}




 
Ha oui çà déjà çà m'aide bien :)


---------------
http://www.xboxlive.fr
Reply

Marsh Posté le 24-10-2002 à 16:35:11    

Attention je mettais trompé sur l utilisation du limit, j ai corrigé ca :-)

Reply

Marsh Posté le 24-10-2002 à 16:35:16    

Comment je peux faire pour compter le nombre d'enregistrements de la table pour tout ceux qui ont l'indicatif 0


---------------
http://www.xboxlive.fr
Reply

Marsh Posté le 24-10-2002 à 16:36:49    

a la barbare :-)
$total = mysql_num_rows(mysql_query("select * from news where indicatif=0" ));

Reply

Marsh Posté le 24-10-2002 à 16:37:18    

Sebastien a écrit a écrit :

a la barbare :-)
$total = mysql_num_rows(mysql_query("select * from news where indicatif=0" ));




 
J'aimerais bien pouvoir être un barbare comme çà lol


---------------
http://www.xboxlive.fr
Reply

Marsh Posté le 24-10-2002 à 16:37:18   

Reply

Marsh Posté le 24-10-2002 à 16:38:33    

Dans ma démarche est-ce que je peux faire comme çà
 
1) Essayé de tout afficher déjà sur la page
2) Essayé de ne mettre que les 20 premiers
3) gérer le multipage
 
Est-ce que çà peut vous paraître logique ?


---------------
http://www.xboxlive.fr
Reply

Marsh Posté le 24-10-2002 à 16:39:38    

Ooopps oublie pas le limit aussi a la fin hein  
 
$total = mysql_num_rows(mysql_query("select * from news where indicatif=0 limit $prem, $max" ));

Reply

Marsh Posté le 24-10-2002 à 16:40:13    

Snake-X a écrit a écrit :

Dans ma démarche est-ce que je peux faire comme çà
 
1) Essayé de tout afficher déjà sur la page
2) Essayé de ne mettre que les 20 premiers
3) gérer le multipage
 
Est-ce que çà peut vous paraître logique ?




 
C'est comme ca que je procederais perso, meme si je sauterais l etape une.

Reply

Marsh Posté le 24-10-2002 à 16:41:17    

Sebastien a écrit a écrit :

 
 
C'est comme ca que je procederais perso, meme si je sauterais l etape une.




 
Heu ouais mais si je saute là une je vais me perdre :p


---------------
http://www.xboxlive.fr
Reply

Marsh Posté le 24-10-2002 à 16:42:51    

Non car la difference entre la une et la deux
c que dans ta requete tu auras juste ajouté limit 0,20

Reply

Marsh Posté le 24-10-2002 à 16:46:32    

Bon on va dire que çà sera une demi-étape alors :)


---------------
http://www.xboxlive.fr
Reply

Marsh Posté le 24-10-2002 à 16:59:51    

Et bien en tout cas je vous remercie beaucoup pour toutes ces infos très précieuses :p
 
Bonne continuation et @ Bientôt
 
PS : pour les personnes qui arriveraient après je suis ouvert à d'autres posts et d'autres conseils. :p


---------------
http://www.xboxlive.fr
Reply

Marsh Posté le 25-10-2002 à 01:53:22    

Sebastien a écrit a écrit :

Ooopps oublie pas le limit aussi a la fin hein  
 
$total = mysql_num_rows(mysql_query("select * from news where indicatif=0 limit $prem, $max" ));



bingo, mysql_num_rows ne retournera jamais une valeur supérieure à max vu qu'il comptes le nombre de réponses retourné par la requête. La première solution est la bonne mais trop longue à exécuter.
Il faut faire un mysql_query("select count(*) nombre from news where indicatif=0 )
et ensui_te aller cherche le résultat de la requête qui là contiendra le nombre de réponse corespondant à ce qu'il a besoin.
A chôté, il fait son mysql_query("select * from news where indicatif=0 limit $prem, $max" ) pour obtenir les textes à affiché à l'écran. ;)

Reply

Marsh Posté le 25-10-2002 à 08:35:59    

Merci beaucoup bon ben si avec tout çà je n'y arrive c'est que vraiment je suis une bu.... enfin vous voyez quoi.
 
En tout cas merci beaucoup :)


---------------
http://www.xboxlive.fr
Reply

Marsh Posté le 25-10-2002 à 09:30:19    

omega2 a écrit a écrit :

bingo, mysql_num_rows ne retournera jamais une valeur supérieure à max



 
Lol oui c t bien la premiere facon la bonne, c ca quand je dis a la barbare :-)
Par contre savoir laquelle des deux methodes est la plus rapide ben la je sais pas trop, ma requete permet de recuperer directement une variable et non un array, pour lui simplifier les choses.

Reply

Marsh Posté le 25-10-2002 à 10:59:29    

Sebastien a écrit a écrit :

 
 
Lol oui c t bien la premiere facon la bonne, c ca quand je dis a la barbare :-)
Par contre savoir laquelle des deux methodes est la plus rapide ben la je sais pas trop, ma requete permet de recuperer directement une variable et non un array, pour lui simplifier les choses.



Oui, mais avec ta méthode, tu transfére toutes les valeurs de la base de donée vers le serveur php avant de calculer le nombre de ligne.
Quand il en aura plusieurs miliers dans sa table et si chaque ligne prends beau coup de place il tombera a coup sur sur un time out à cause de ça.
Dans mon cas , ca lui fait 2-3 ligne de php de plus à écrire mais aussi un bon gain de temps sur les grosses tables. ;)

Reply

Marsh Posté le 25-10-2002 à 11:38:12    

Un point pour toi :-)  
 
ps : [je n utilise jamais mysql_num_rows non plus]


Message édité par Sebastien le 25-10-2002 à 11:38:40
Reply

Marsh Posté le 25-10-2002 à 15:09:28    

Sebastien a écrit a écrit :

Un point pour toi :-)  
 
ps : [je n utilise jamais mysql_num_rows non plus]



Ben moi je l'utilise par ce que je travailles pas en php4 et que c'est quand même bien pratique en php3 de savoir quand arrêter une boucle. ;)

Reply

Marsh Posté le 29-10-2002 à 13:57:18    

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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