ugrás a tartalomhoz

Lapozós fórum megjelenítés helyes sorszámozással

Farstaff · 2007. Ápr. 6. (P), 11.43
Sziasztok!
Oldalszámozást szeretnék az oldalam fórumába. Azt szeretném, hogy 1 oldalon csak 10 üzenet látszódjon. Ha már 11 üzenet van a lap alján megjelenjen , hogy 2. oldal. Ráklikkel a felhasználó és akkor 11-20-ig mutatja az üzeneteket. Erre nekem van egy kódom:
  1. <?php  
  2.   
  3.   
  4.   
  5. for($i=1;$i<=110;$i=$i+1){  
  6. $termek[$i]=$i;  
  7. }  
  8.   
  9.   
  10. $termekek_db=count($termek);  
  11.   
  12. if(isset($_REQUEST["lap_szam"])){  
  13. $kezd=(($_REQUEST["lap_szam"]*10)-9);  
  14. if($termekek_db < ($kezd+9)){  
  15. $veg=$termekek_db;  
  16. else {  
  17. $veg=($kezd+9);  
  18. }  
  19. }  
  20. ?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  21. <html>  
  22. <head>  
  23.   
  24. <title>Untitled Document</title>  
  25. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  
  26. <style type="text/css">  
  27. <!--  
  28. #link1:hover{  
  29. text-decoration: underline;  
  30. color:#00FF00;  
  31. font-size: 12px;  
  32. }  
  33. -->  
  34. </style>  
  35. </head>  
  36.   
  37. <body>  
  38.   
  39. <?php  
  40.   
  41. if($termekek_db > 10){  
  42. $mennyi=0;  
  43. $szam=$termekek_db;  
  44.   
  45. while($szam > 0){  
  46. $mennyi=$mennyi+1;  
  47. $szam=$szam-10;  
  48. }  
  49. print("Talált oldalak: ");  
  50. for($k=1;$k<=$mennyi;$k=$k+1){  
  51. print("[<a id='link1' href='oldalszamozas.php?lap_szam=".$k."'>".$k."</a> ] ");  
  52. }  
  53. }  
  54.   
  55. for($i=$kezd;$i<=$veg;$i=$i+1){  
  56.   
  57. print("<br>".$termek[$i]."<br>");  
  58.   
  59. }  
  60.   
  61. ?>  
  62.   
  63. </body>  
  64. </html>  
De természetesen ez nem elég. Nem tudom, hogy hova szúrjam bele a fórumomat. Mert ugye természetesen így nem tudja megszámolni, hogy hány tagja van. Így mivel a fórumomban az utolsó 10 üzenet látszik, akármelyik lapra lépek mindíg az a 10 üzenet látszik amelyiket legutóbb beküldték. Remélem érthető a gondom :)
 
1

SQL

janoszen · 2007. Ápr. 6. (P), 12.23
Ezt már SQL szinten is meg lehet csinálni. Ha meg akarod kérdezni, hány oldal van:
  1. SELECT CEIL(COUNT(*)/10) AS 'oldalak' FROM hozzaszolasok WHERE topic='azentopicom';  
Ahhoz pedig, hogy lekérd a megfelelő hozzászólásokat:
  1. SELECT * FROM hozzaszolasok WHERE topic='azentopicom' LIMIT 20,10;  
Értelemszerűen a limit első paraméterét PHP-ban meghatározod. Nem teszteltem le, de valahogy így kell működnie.

Azt viszont nem értem, hogy honnan szedi a scripted az adatokat...