login  Naam:   Wachtwoord: 
Registreer je!
 Forum

paginanummering

Offline JosB - 18/01/2009 19:58
Avatar van JosBNieuw lid Hoi allen,

Ik heb vandaag heel veel lopen stoeien en uitgeprobeert om te zorgen dat mijn plaatjes niet in een lange rij komt te staan.

Ik wil heb graag per 2 per pagina.... Dus op de eertste pagina de eerste 2 plaatjes en dan de volgende 2 plaatjes op pagina 2 ( deze moet automatisch aangemaakt worden ) enz enz.

Momenteel roep ik het als volgt op

  1. <?
  2.  
  3. $query = "SELECT * FROM portfolio ORDER BY id DESC LIMIT 0,5";
  4. $result = mysql_query($query) or die(mysql_error());
  5. $count = mysql_num_rows($result);
  6. if ($count==0)
  7. {
  8. echo '<span style="color: #FF0000;">Er staan geen foto&#39;s in de database</span>';
  9. }
  10. else
  11. {
  12. // result
  13. while($row = mysql_fetch_assoc($result))
  14. {
  15. echo '<a href="'. $row['grote_afbeelding'] .'"><img src="'. $row['klein_afbeelding'] .'" border="0" /></a><br />
  16. '. $row['projectnaam'] .' - '. $row['technieken'] .'<br />'. $row['beschrijving'] .'';
  17. }
  18. }
  19.  
  20. ?>


Bestaat er al iets dat ik daarvoor kan gebruiken ?

Alvast bedankt

4 antwoorden

Gesponsorde links
Offline Maarten - 18/01/2009 20:10
Avatar van Maarten Erelid Ik kan hier met plezier een hoop code neerplanten en je uit de nood helpen, maar leren doe je het best als je alles zelf doet ;)

In deze categorie vind je een hoop scripts (snippets) die paginanummering gebruiken, in alle kleuren en vormen.

Gebruik een van die kant-en-klare modellen, of tracht bij voorkeur een scriptje te begrijpen en het zelf te implementeren volgens jouw noden.
Offline JosB - 18/01/2009 20:19 (laatste wijziging 18/01/2009 20:23)
Avatar van JosB Nieuw lid goed idee .. dank!

Ik zal het gaan proberen ... maar als jet niet lukt kom ik bij je terug    
Offline Ibrahim - 19/01/2009 15:05
Avatar van Ibrahim PHP expert Je leert het beter van een tutorial dan van een script 

Pagina navigatie geschreven door FangorN. Lees het door in plaats van de final script te kopiëren.

Nadat je het hebt doorgelezen, moet je de geleerde techniek zelf eerst toepassen. Als het niet werkt, dan moet je de tutorial nog maar eens doorlezen.

Nogmaals, niet de final script kopiëren 

Hopelijk heb ik je hiermee geholpen. Veel succes !
Offline JosB - 19/01/2009 20:11 (laatste wijziging 21/01/2009 18:30)
Avatar van JosB Nieuw lid @ Maarten:

Ik heb het een beetje doorzocht .. en ik heb een en ander erin verwerkt. Nu krijg ik wel in de urlbalk "index.php?p=1 ,index.php?p=2" enz ... alleen blijven wel alle plaatjes tegelijk zichtbaar op alle pagina's

Voor een duidelijke illustratie post ik de code:

index.php
  1. <?php
  2.  
  3.  
  4. require("navigatie.class.php");
  5. $ng = new Navigatie("portfolio", 1);
  6.  
  7.  
  8. $sql = "SELECT * FROM portfolio ORDER BY id DESC LIMIT ".$ng->offset().",".$ng->items_per_pagina()."";
  9. $res = mysql_query($sql) or die (mysql_error());
  10. while ($show = mysql_fetch_object($res))
  11. {
  12.  
  13. }
  14.  
  15.  
  16.  
  17. echo $ng->links();
  18.  
  19.  
  20.  
  21. $query = "SELECT * FROM portfolio ORDER BY id DESC LIMIT 0,5";
  22. $result = mysql_query($query) or die(mysql_error());
  23. $count = mysql_num_rows($result);
  24. if ($count==0)
  25. {
  26. echo '<span style="color: #FF0000;">Er staan geen projecten in de database</span>';
  27. }
  28. else
  29. {
  30. while($row = mysql_fetch_assoc($result))
  31. {
  32. echo '<span style="color: #c7bfb0;"><h3><strong>Projectnaam:</strong> '. $row['projectnaam'] .'</h3></span>
  33. <a href="'. $row['grote_afbeelding'] .'"><img src="'. $row['kleine_afbeelding'] .'" border="1" /></a><br /><br />
  34. <strong><span style="color: #7a7365;">Gebruikte Technieken:</strong> '. $row['technieken'] .'<br /><br /><strong>Beschrijving:</strong><br /> '. $row['beschrijving'] .'</span><br /><hr><br />';
  35. }
  36. }
  37.  
  38. ?>


navigatie.class.php
  1. <?php
  2. /**
  3.  * @class: Deze klasse maakt een pagina systeem voor als je inhoud uit
  4.  * de database laat zien. Zo heb je niet alles onder elkaar
  5.  * staan, maar houdt je alles overzichtelijk met meerdere
  6.  * pagina's
  7.  * @author: Gizmo (Dave Lemmens)
  8.  * @version: v1.0
  9.  * @copyright: (c)2007 Gizmo
  10.  */
  11. class Navigatie
  12. {
  13. //////////////////////////////////////////////////
  14. // De tabel waaruit de waardes straks worden getoond
  15. //////////////////////////////////////////////////
  16. private $tabel;
  17. //////////////////////////////////////////////////
  18. // Het aantal items per pagina
  19. //////////////////////////////////////////////////
  20. private $items_per_pagina;
  21. //////////////////////////////////////////////////
  22. // Het aantal pagina's
  23. //////////////////////////////////////////////////
  24. private $aantal_paginas;
  25. //////////////////////////////////////////////////
  26. // De huidge pagina waarop de bezoeker is
  27. //////////////////////////////////////////////////
  28. private $huidig;
  29. //////////////////////////////////////////////////
  30. // De offset voor de uiteindelijke query
  31. //////////////////////////////////////////////////
  32. private $offset;
  33.  
  34. /**
  35.   * @function: Constructor: zet de variabelen goed
  36.   * @param: $tabel: de tabel waaruit de waardes straks worden weergegeven
  37.   * $items_per_pagina: het aantal items dat op een pagina getoond moet worden
  38.   */
  39. public function Navigatie($tabel, $items_per_pagina)
  40. {
  41. $this->tabel = $tabel;
  42. $this->items_per_pagina = $items_per_pagina;
  43. $this->aantal_paginas = $this->count_paginas();
  44. $this->huidig = $this->get_huidig();
  45. $this->offset = $this->get_offset();
  46. }
  47.  
  48. /**
  49.   * @function: geeft de offset terug
  50.   * @return: de offset
  51.   */
  52. public function offset()
  53. {
  54. return $this->offset;
  55. }
  56.  
  57. /**
  58.   * @function: geeft het aantal items per pagina terug
  59.   * @return: het aantal items per pagina
  60.   */
  61. public function items_per_pagina()
  62. {
  63. return $this->items_per_pagina;
  64. }
  65.  
  66. /**
  67.   * @function: zet de nodige variabelen goed
  68.   * @param: $tabel: de tabel waaruit de waardes straks worden weergegeven
  69.   * $items_per_pagina: het aantal items dat op een pagina getoond moet worden
  70.   * @return: void
  71.   */
  72. public function set($tabel, $items_per_pagina)
  73. {
  74. //////////////////////////////////////////////////
  75. // Variabelen goed zetten
  76. //////////////////////////////////////////////////
  77. $this->tabel = $tabel;
  78. $this->items_per_pagina = $items_per_pagina;
  79.  
  80. //////////////////////////////////////////////////
  81. // Aantal pagina's en de offset berekenen en de
  82. // huidige pagina opzoeken
  83. //////////////////////////////////////////////////
  84. $this->aantal_paginas = $this->count_paginas();
  85. $this->huidig = $this->get_huidig();
  86. $this->offset = $this->get_offset();
  87. }
  88.  
  89. /**
  90.   * @function: berekent het totaal aantal paginas
  91.   * @return: het totale aantal paginas
  92.   */
  93. private function count_paginas()
  94. {
  95. $sql = "SELECT COUNT(id) FROM ".$this->tabel."";
  96. $res = mysql_query($sql) or die (mysql_error());
  97. $aantal_items = mysql_result($res, 0);
  98. $paginas = ceil($aantal_items / $this->items_per_pagina);
  99. return $paginas;
  100. }
  101.  
  102. /**
  103.   * @function: kijkt op welke pagina de bezoeker nu is.
  104.   * @return: de pagina waarop de bezoeker nu is
  105.   */
  106. private function get_huidig()
  107. {
  108. //////////////////////////////////////////////////
  109. // We beginnen op 0, voor als de bezoeker nog
  110. // niet op een volgende pagina is, of voor als
  111. // de $_GET geen geldige waarde bevat
  112. //////////////////////////////////////////////////
  113. $huidige_pagina = 0;
  114.  
  115. //////////////////////////////////////////////////
  116. // Kijken op welke pagina de bezoeker is en
  117. // meteen controleren of het een geldige waarde is
  118. //////////////////////////////////////////////////
  119. if(isset($_GET['p']) && is_numeric($_GET['p']) && $_GET['p'] > 0 && $_GET['p'] < $this->aantal_paginas)
  120. {
  121. $huidige_pagina = $_GET['p'];
  122. }
  123.  
  124. return $huidige_pagina;
  125. }
  126.  
  127. /**
  128.   * @function: berekend de offset voor de uiteindelijke query
  129.   * @return: de offset voor de uiteindelijke query
  130.   */
  131. private function get_offset()
  132. {
  133. $offset = $this->huidig * $this->items_per_pagina;
  134. return $offset;
  135. }
  136.  
  137. /**
  138.   * @function: Deze functie maakt de navigatie links
  139.   * @return: de navigatie links
  140.   */
  141. public function links()
  142. {
  143. //////////////////////////////////////////////////
  144. // Eerst bepalen we de url. Hiervoor maken we
  145. // gebruik van de functie querystring()
  146. //////////////////////////////////////////////////
  147. $q = $_SERVER['PHP_SELF'].$this->querystring("p");
  148.  
  149. //////////////////////////////////////////////////
  150. // Nu maken we de vorige knop
  151. //////////////////////////////////////////////////
  152. if ($this->huidig > 0)
  153. {
  154. $out .= " <a href='".$q."p=".($this->huidig - 1)."'>Vorige</a> ";
  155. }
  156.  
  157. //////////////////////////////////////////////////
  158. // We maken de navigatie met behulp van een
  159. // select. Als er op een paginanummer geklikt
  160. // wordt, wordt je meteen naar de pagina gestuurd
  161. //////////////////////////////////////////////////
  162. if ($this->aantal_paginas > 1)
  163. {
  164. $out .= "<select name='navigatie'>\n";
  165. for ($i = 0; $i < $this->aantal_paginas; $i++)
  166. {
  167. $out .= "<option value='".$i."' onClick='JavaScript:window.location=\"".$q."p=".$i."\"' ";
  168. //////////////////////////////////////////////////
  169. // De huidige pagina moet geselecteerd zijn
  170. //////////////////////////////////////////////////
  171. if ($this->huidig == $i)
  172. {
  173. $out .= "selected='selected'";
  174. }
  175. $out .= ">".($i+1)."</option>";
  176. }
  177. $out .= "</select>\n";
  178. }
  179.  
  180. //////////////////////////////////////////////////
  181. // Nu maken we de volgende knop
  182. //////////////////////////////////////////////////
  183. if ($this->huidig < ($this->aantal_paginas - 1))
  184. {
  185. $out .= " <a href='".$q."p=".($this->huidig + 1)."'>Volgende</a>";
  186. }
  187.  
  188. return $out;
  189. }
  190.  
  191. /**
  192.   * @function: maakt de url door te kijken welke $_GET waardes er
  193.   * al in staan, zodat deze niet verloren gaan
  194.   * @param: $nav_var: de variabele die het paginanummer aangeeft
  195.   * @return: de juiste querystring
  196.   */
  197. private function querystring($nav_var)
  198. {
  199. //////////////////////////////////////////////////
  200. // We beginnen met een ? in de string
  201. //////////////////////////////////////////////////
  202. $qstring = "?";
  203.  
  204. //////////////////////////////////////////////////
  205. // Nu kijken we of er meerdere queryvariabelen
  206. //zijn
  207. //////////////////////////////////////////////////
  208. if(sizeof($_GET) > 1 || !in_array($nav_var, array_keys($_GET)))
  209. {
  210. //////////////////////////////////////////////////
  211. // De string aanvullen met de variabelen die in
  212. // de url staan
  213. //////////////////////////////////////////////////
  214. foreach($_GET as $k => $v)
  215. {
  216. if($k != $nav_var)
  217. {
  218. $qstring .= $k."=".$v."&amp;";
  219. }
  220. }
  221. }
  222.  
  223. return $qstring;
  224. }
  225. }
  226. ?>


@ Psycho:

Bedankt ik zal het eens doorlezen!!

edit: Wat ik ook probeer .. het blijft zo dat alle plaatjes op elke pagina te zien blijven ipv 2 plaatjes per pagina.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.213s