login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[PHP] Pagina navigatie (Opgelost)

Offline raintjah - 05/09/2007 20:47 (laatste wijziging 05/09/2007 20:59)
Avatar van raintjahNieuw lid Hallo,

ik probeerde het pagina-systeem van fangorn te integreren in mijn site, maar daar ervaar wat probleempjes mee. Het gaat om dit script:
http://www.site...P_en_MySQL

Ik heb het omgevormd tot de volgende code:
  1. <?php
  2. $res1 = mysql_query("SELECT COUNT(id) FROM strategy") or die("res1: ".mysql_error()); // vraag het AANTAL items op
  3. $items_totaal = mysql_result($res1, 0); // het totaal aantal items
  4. mysql_free_result($res1); // geef het resultaat vrij
  5.  
  6. $items_per_pagina = 14; // vrij te kiezen
  7. $aantal_paginas = ceil($items_totaal / $items_per_pagina); // het aantal items per pagina
  8.  
  9. // de huidige pagina opvragen
  10. $huidige_pagina = 0; // default
  11. if(isset($_GET['p']) && is_numeric($_GET['p']) && $_GET['p'] > 0 && $_GET['p'] < $aantal_paginas) {
  12. $huidige_pagina = $_GET['p'];
  13. }
  14.  
  15. // items van de huidige pagina ophalen
  16. $offset = $huidige_pagina * $items_per_pagina;
  17. $res2 = mysql_query("SELECT * FROM strategy ORDER BY id DESC LIMIT ".$offset.","
  18. .$items_per_pagina) or die("res2:". mysql_error());
  19.  
  20. /*
  21. doe hier iets met de gegevens in $res2
  22. ...
  23. */
  24.  
  25. // resultaten vrijgeven
  26.  
  27. function querystring($nav_var) {
  28. $qstring = "?"; // de querystring
  29. if(sizeof($_GET) > 1 || !in_array($nav_var, array_keys($_GET))) {
  30. // meer queryvariabelen te onthouden dan enkel $_GET[$nav_var]
  31. foreach($_GET as $k => $v) {
  32. if($k != $nav_var) {
  33. $qstring .= $k."=".$v."&amp;";
  34. }
  35. }
  36. }
  37. return $qstring;
  38. }
  39. // navigatie
  40. // scriptnaam + de querystring, met uitzondering van de navigatie-variabele
  41. $q = $_SERVER['PHP_SELF'].querystring("p");
  42. for($i = 0; $i < $aantal_paginas; $i++) {
  43. if($huidige_pagina == $i) {
  44. // huidige pagina is niet klikbaar
  45. echo "<b>".($i+1)."</b>";
  46. } else {
  47. // een andere pagina - gebruik hier $q
  48. echo "<a href=\"".$q."p=".$i."\">".($i+1)."</a>";
  49. }
  50. // deel-streepje tussen alle items
  51. if($i < $aantal_paginas - 1) {
  52. echo " - ";
  53. }
  54. }
  55. ?>


Nu is mijn probleem het volgende:
Hij maakt mooit de navigatielijn aan (dus: 1 - 2 - 3 - ...), en die zijn ook allemaal gelinkt, maar als ik nu van pagina 1 naar 2 wil gaan door op '2' te klikken, dan blijft hij gewoon de informatie van op pagina 1 geven (hoewel de twee nu wel vet gedrukt staat...).
Verder houdt het script zich ook niet aan het aantal toegelaten items per pagina, ik heb ingesteld dat er 14 getoond mogen worden, maar hij laat ze gewoon allemaal zien....

Er staat wel:
#
/*
#
doe hier iets met de gegevens in $res2
#
...
#
*/

Maar wat moet daar ongeveer mee gebeuren?  

Alvast bedankt!!

3 antwoorden

Gesponsorde links
Offline ikki007 - 05/09/2007 21:01
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Je moet natuurlijk wel die resultaten printen, die die opheeft gehaald.

Dus in een while loopje.  
Offline Stijn - 05/09/2007 21:02
Avatar van Stijn PHP expert Ja, daar kan je de resultaten opvangen met bijvoorbeeld PHP.net: mysql_fetch_assoc en op het scherm tonen of een bewerking doen met de resultaten.

De functie PHP.net: mysql_free_results zorgt ervoor dat je de gegevens van die query niet meer kan opvangen omdat die uit het geheugen gewist zijn.
Offline raintjah - 05/09/2007 21:04
Avatar van raintjah Nieuw lid Aaahh, ja ik snap het! Daar moet ik eigenlijk de code inzetten die er zou staan zonder het script!

Thx!

(wat zou ik toch zonder jullie moeten )
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.182s