login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Vorige volgende systeem

Offline zwobbel - 19/04/2005 19:36 (laatste wijziging 19/04/2005 19:36)
Avatar van zwobbelPHP gevorderde Ik heb een scripts hier van sitemasters gehaald met een vorig 123 volgende systeem maar alles werkt perfect als ik vb in de url p=2 zet krijg ik pagina 2 te zien maar het enigste dat ik nu nog uitzoek is hoe vraag ik die vorige 1,2,3 volgende op uit die funtie?
  1. <?
  2. function navigatie($p, $max, $paginas, $url)
  3. {
  4. $nav = '';
  5. if ($paginas < 2) // als er maar 1 pagina is
  6. {
  7. $nav = "";
  8. }
  9. else
  10. {
  11. if ($p < 2) // als je op de eerste pagina zit
  12. {
  13. $nav .= "<<";
  14. }
  15. else
  16. {
  17. $nav .= "<a href=\"".$url."&p=".($p-1)."\"><<</a>";
  18. }
  19. ## for lus om alle pagina-nummers te laten zien ([1][2][3])
  20. for ($j=0; $j < $paginas; $j++)
  21. {
  22. $i = $j+1;
  23. if ($i == $p) // als je op deze pagina zit
  24. {
  25. $nav .= " <b>[".$i."]</b> ";
  26. }
  27. else
  28. {
  29. $nav .= " <a href=\"".$url."&p=".$i."\">[".$i."]</a> ";
  30. }
  31. }
  32. if ($p == $paginas) // als je op de laatste pagina zit
  33. {
  34. $nav .= ">>";
  35. }
  36. else
  37. {
  38. $nav .= "<a href=\"".$url."&p=".($p+1)."\">>></a>";
  39. }
  40. }
  41. return $nav;
  42. }
  43.  
  44.  
  45.  
  46. if (!isset($_GET['p'])) // als er in de url nog geen p={iets} staat dan is p 1
  47. {
  48. $p=1;
  49. }
  50. else
  51. {
  52. $p=$_GET['p'];
  53. }
  54. $max = 2; // maximale aantal rijen per pagina
  55. $result = mysql_query("SELECT * FROM gastenboek") or die (mysql_error()); // de query (nog wel even de tabelnaam aanpassen)
  56. $aantal = mysql_num_rows($result); // aantal rijen tellen
  57. $paginas = ($aantal / $max); // 'aantal rijen' gedeelt door de 'maximaal aantal rijen per pagina'
  58. $weergave = ceil($p * $max) - $max; // welke rijen je moet laten zien
  59.  
  60. $nav = navigatie($p, $max,$paginas,"index.php?a=gastenboek"); // begin de functie
  61.  
  62. $query = mysql_query("SELECT `*` FROM `gastenboek` ORDER BY `ID` ASC LIMIT $weergave,$max") or die (mysql_error());
  63.  
  64. while ($aFetch = mysql_fetch_assoc($query))
  65. {
  66. ?>
  67. <table width="75%" border="0" align="center" cellpadding="0" cellspacing="0">
  68. <tr bgcolor="#E6E6E6">
  69. <td width="11%" class="Left_Top">Naam:</td>
  70. <td width="61%" class="Top"><a href="mailto:<? print $aFetch['email']; ?>?subject=Re:%20Gastenboek%20-%20Zwobbel"><strong><? print $aFetch['naam']; ?></strong></a></td>
  71. <td width="28%" class="Right_Top"><div align="right" class="Datum"><? print $aFetch['datum']; ?></div></td>
  72. </tr>
  73. <tr bgcolor="#E6E6E6">
  74. <td class="Left">Website:</td>
  75. <td colspan="2" class="Right"><a href="<? print $aFetch['website']; ?>" target="_blank"><? print $aFetch['website']; ?></a></td>
  76. </tr>
  77. <tr>
  78. <td colspan="3" class="Kader"><? print $aFetch['bericht']; ?></td>
  79. </tr>
  80. </table>
  81. <br>
  82. <?
  83. }
  84. ?>

3 antwoorden

Gesponsorde links
Offline Rens - 19/04/2005 19:42
Avatar van Rens Gouden medaille

Crew algemeen
Gewoon
  1. echo $nav;
doen^^ 
Offline zwobbel - 19/04/2005 19:45 (laatste wijziging 19/04/2005 19:49)
Avatar van zwobbel PHP gevorderde neen hij weergeeft niets 
blijkbaar als het max per pagina een oneven getal is werkt die nav niet wat nu?
Offline Rens - 19/04/2005 20:34 (laatste wijziging 19/04/2005 20:46)
Avatar van Rens Gouden medaille

Crew algemeen
Dit had ik pas geleden nog gemaakt.
Ik heb hem even een beetje aangepast, en er een voorbeeld bij gedaan hoe hij gebruikt kan worden.
Er zit meteen een check in, voor de url.
Hij kijkt of er een ? staat in de url, als dat zo is gebruikt hij een &amp; om de nav. in te zetten

pagina navigatie class:
  1. <?PHP
  2. class pagenav
  3. {
  4. function nav($iPagina, $iTotaalPaginas, $sPagina)
  5. {
  6. $this->nav = "";
  7. if(ereg("[?]", $sPagina))
  8. {
  9. $this->add = "&amp;";
  10. } else
  11. {
  12. $this->add = "?";
  13. }
  14. if(($iPagina-1) > -1)
  15. {
  16. $this->nav .= "<A HREF='".$sPagina.$this->add."nav=".($iPagina-1)."'>Vorige</A> - ";
  17. }
  18.  
  19. for($i = 0; $i < $iTotaalPaginas; $i++)
  20. {
  21. if($i == $iPagina)
  22. {
  23. $this->nav .= "<B>".$i."</B> - ";
  24. } else
  25. {
  26. $this->nav .= "<A HREF='".$sPagina.$this->add."nav=".($i)."'>".$i."</A> - ";
  27. }
  28. }
  29. if(($iPagina+1) < $iTotaalPaginas)
  30. {
  31. // hier zet hij " - " er nog achter, zodat het juist werkt
  32. // zou dit er niet staan, en zou er nog wel een 'volgende' zijn,
  33. // dan zou hij een de laatste 3 letters van 'volgende' weg halen
  34. $this->nav .= "<A HREF='".$sPagina.$this->add."nav=".($iPagina+1)."'>Volgende</A> - ";
  35. }
  36. $this->nav = substr($this->nav, 0, strlen($this->nav)-3);
  37. return $this->nav;
  38. }
  39. }
  40. ?>


voorbeeld hoe het te gebruiken:
  1. <?PHP
  2. // de class includen
  3. include("pagenav.php");
  4.  
  5. // de class starten
  6. $cPageNav = new pagenav;
  7.  
  8. // nav uit de url ophalen
  9. if(!IsSet($_GET['nav']) || !Is_Numeric($_GET['nav']))
  10. {
  11. // nav is niet geset, of geen getal
  12. // nav = 0
  13. $iNav = 0;
  14. } else
  15. {
  16. // nav is wel geset en een getal
  17. // nav is nav uit de url
  18. $iNav = $_GET['nav'];
  19. }
  20. // 5 heb ik hier ff als max. aantal per pagina genomen
  21. $iStart = ($iNav*5);
  22. // max aantal berichten per pagina
  23. $iEnd = 5;
  24. // query
  25. $sQuery = "SELECT * FROM gastenboek ORDER BY ID ASC LIMIT ".$iStart.", ".$iEnd;
  26. // query uitvoeren
  27. if(!$rResult = MySQL_Query($sQuery))
  28. {
  29. // niet uitgevoerd, error weergeven
  30. } else
  31. {
  32. // while loop voor de berichten
  33. while($aFetch = MySQL_Fetch_assoc($rResult))
  34. {
  35. // weergeven van bericht
  36. }
  37.  
  38. // query voor aantal paginas
  39. $sQueryTotaalPaginas = "SELECT COUNT(ID) FROM gastenboek";
  40. // query uitvoeren
  41. if(!$rResultTotaalPaginas = MySQL_Query($sQueryTotaalPaginas))
  42. {
  43. // niet uitgevoerd, error weergeven
  44. } else
  45. {
  46. // totaal berichten uit query-result halen
  47. $iTotaalBerichten = MySQL_Result($rResultTotaalPaginas, 0);
  48. // totaal paginas ophalen
  49. // weer 5 als voorbeeld
  50. $iTotaalPaginas = ceil($iTotaalBerichten/5);
  51. ?>
  52. <!--
  53. code voor pagina navigatie
  54. hier staat het in een tabel,
  55. maar dat is makkelijk aan te passen
  56. -->
  57. <hr class='hr'>
  58. <table width='100%' cellpadding='0' cellspacing='0'>
  59. <tr>
  60. <td class='tableHead'>
  61. <div class='textMargin'>
  62. Pagina navigatie
  63. </div>
  64. </td>
  65. </tr>
  66. <tr>
  67. <td class='tableRow'>
  68. <div class='textMargin'>
  69. <?PHP
  70. // pagina navigatie printen
  71. echo $cPageNav->nav($iNav, $iTotaalPaginas, "index.php?a=gastenboek");
  72. ?>
  73. </div>
  74. </td>
  75. </tr>
  76. </table>
  77. <?PHP
  78. }
  79. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.389s