login  Naam:   Wachtwoord: 
Registreer je!
 Forum

volgende vorige functie

Offline edwin87 - 13/10/2006 10:21
Avatar van edwin87Nieuw lid ik ben tegen een probleem aangelopen en dat is;
ik heb 8 records in de db staan.
4 per pagina.
Nu zou je verwachten dat hij 2 pagina's geeft maar hij geeft er 3.
2 paginas ieder 4 records. de derde pagina blijft leeg.
http://www.ozca2.nl/content.php
hier zie je het probleem.
  1. <?
  2. $res1 = mysql_query("SELECT COUNT(id) FROM nieuws") or die("res1: ".mysql_error()); // vraag het AANTAL items op
  3. $aantal_paginas = mysql_result($res1,0); // het totaal aantal items
  4.  
  5. $items_per_pagina = 4; // vrij te kiezen
  6. if($_GET["pagina"] == true) {
  7. $huidige_pagina = $_GET["pagina"];
  8. }
  9. else {
  10. $huidige_pagina = 1;
  11. }
  12. // items van de huidige pagina ophalen
  13. $berichten = mysql_query("SELECT * FROM nieuws ORDER BY id DESC LIMIT ".$huidige_pagina.",4") or die("berichten:". mysql_error());
  14.  
  15. /* Als er berichten zijn dan verder gaan. (Zie: ) */
  16. if ($berichten > 0)
  17. {
  18. /* Start een while loop (voor mee info zie: ) */
  19. /* mysql_fetch_array ($query); pakt steeds een BERICHT en geeft die terug in $data */
  20. while ($data = mysql_fetch_array ($berichten))
  21. {
  22. /* Laat nu 'Door: <NAAM>' zien op het scherm */
  23. $titel = stripslashes($data[titel]);
  24. $datum = stripslashes ($data[datum]);
  25. $link = ($data[id]);
  26. echo "<table width='100%'><tr><td style='border-bottom:1px solid #d4cccc;'>";
  27. echo '<a href="nieuws.php?id=' . $data[id] . '">' . $data[titel] . '</a>';
  28.  
  29. /* Zet nu $data[bericht] om in $bericht en zet daarna enters om in echte HTML ENTERS */
  30.  
  31. $bericht = stripslashes($data[bericht]);
  32. $bericht = nl2br ($bericht); /* Maak van \n (database enters) <BR> (html enters) */
  33. echo "<td class='date' align='right' style='border-bottom:1px solid #d4cccc;'>$datum</td></tr>";
  34. }
  35. }
  36. else
  37. {
  38. /* Als er geen berichten zijn dan: */
  39. echo "Er zijn geen nieuwsberichten.";
  40. }
  41.  
  42.  
  43.  
  44. echo "</table><table><tr><td align='center'>";
  45. // navigatie
  46.  
  47. if($huidige_pagina >= 4)
  48. {
  49. $vorige = $huidige_pagina - 4;
  50. echo "<a href='?pagina=".$vorige."'>Vorige</a>";
  51. }
  52.  
  53.  
  54.  
  55. if($huidige_pagina < $aantal_paginas)
  56. {
  57. $volgende = $huidige_pagina + 4;
  58. echo " <a href='?pagina=".$volgende."'>Volgende</a>";
  59. }
  60.  
  61.  
  62.  
  63.  
  64. echo "</td></tr>";
  65. ?>

dit is het script. Ik heb het vermoeden dat een 1 of een 0 moet worden veranderd in een 4 maar dat werkt dus niet.
Kan iemand me hier even mee helpen?

De limit klopt wel btw. Hij moet alles laten zien behalve het nieuwste id. Dat werkt wel.

3 antwoorden

Gesponsorde links
Offline Thomas - 13/10/2006 11:29
Avatar van Thomas Moderator > inspiratie
Offline edwin87 - 13/10/2006 15:54
Avatar van edwin87 Nieuw lid Ik begrijp dat het hier om gaat? of zie ik dat verkeerd.
  1. $aantal_paginas = ceil($items_totaal / $items_per_pagina);


Ik heb dit naar mijn idee goed toegepast maar het werkt helaas nog niet.

Iemand die me kan helpen?
Offline Thomas - 13/10/2006 16:22 (laatste wijziging 13/10/2006 16:25)
Avatar van Thomas Moderator Allereerst, je hebt 4 items per pagina, dus de LIMIT-offset (startpositie - query van regel 13) van de huidige pagina is

$items_per_pagina * ($huidige_pagina - 1)

niet $huidige_pagina.

Min één omdat je bij 1 begint te tellen - 0 was handiger geweest in verband met je LIMIT-offset.

Je hebt volgens mij een verkeerd idee van wat nu een pagina is. In jouw geval, waar je bij pagina 1 begint:

Pagina 1: item 1 t/m 4
Pagina 2: item 5 t/m 8
Pagina 3: item 9 t/m 12
... et cetera

Aan de pagina-nummers kun je dus niet zien uit hoeveel items één pagina bestaat, vandaar misschien je verwarring.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.208s