login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Hulp met navigatie systeem

Offline Wouser - 04/05/2006 11:32 (laatste wijziging 05/05/2006 10:50)
Avatar van WouserPHP interesse PROBLEEM OPGELOST

Hoi hoi,

Ik ben bezig met een sigchat. Nu ben ik bezig om de berichten die zijn geplaatst netjes weer te geven op een pagina, zoals bij een gastenboek. Nu ben ik niet de beste in PHP , en had ik mee een paginascript gepakt van deze site: klik

Hij werkt opzich wel... Maar ik heb het aantal berichten dat hij moet weergeven per pagina aangepast.
namelijk

navigatie('berichten',50);

En hij doet dat niet echt..., heb hem namelijk eerst getest op:
navigatie('berichten',2);

en dan krijg ik gewoon alle berichten terwijl hij dan maar 2 berichten per pagina moet weergeven...

de pagina

Ook heb ik het stukje;

  1. <br>
  2. <select name="aantal" onChange="window.location=''+this.form.elements['aantal'].value;">
  3. <option value="<? echo $plaats ;?>navigatiepagina=<? echo $huidige_pagina + 1 ;?>">- Aantal: -</option>
  4. <?php
  5. $max = $_GET['aantal']; //Aantallen selecteren (aantal hier aanpassen ==> bovenaan ook aanpassen)
  6. ?>
  7. <option value="?navigatiepagina=1&aantal=8"<?= ($max == 8) ? " selected=\"selected\"" : "" ?>>8 berichten</option>
  8. <option value="?navigatiepagina=1&aantal=10"<?= ($max == 10) ? " selected=\"selected\"" : "" ?>>10 berichten</option>
  9. <option value="?navigatiepagina=1&aantal=15"<?= ($max == 15) ? " selected=\"selected\"" : "" ?>>15 berichten</option>
  10. <option value="?navigatiepagina=1&aantal=20"<?= ($max == 20) ? " selected=\"selected\"" : "" ?>>20 berichten</option>
  11. </select>
  12. </form>


weggehaald omdat ik dat niet nodig heb...

Kan iemand mij plz plz helpen 


CODE: NAVIGATIE.PHP
  1. <?php
  2.  
  3. include("config.php");
  4.  
  5. function correctURL($negeren) {
  6. // de querystring
  7. $querystring = "?";
  8. if(sizeof($_GET) > 1 || !in_array($negeren, array_keys($_GET))) {
  9. // meer queryvariabelen te onthouden dan enkel $_GET[$nav_var]
  10. foreach($_GET as $k => $v) {
  11. if($k != $negeren) {
  12. $querystring .= $k."=".$v."&amp;";
  13. }
  14. }
  15. }
  16. return $querystring;
  17. }
  18.  
  19.  
  20. function navigatie($op, $max)
  21. {
  22. if (isset($_GET['aantal']) && (($_GET['aantal'] == 8) || ($_GET['aantal'] == 10) || ($_GET['aantal'] == 15) || ($_GET['aantal'] == 20)) && is_numeric($_GET['aantal'])) //Juiste vorm controlen
  23. {
  24. $max = $_GET['aantal']; //Als het OK is, $max instellen
  25. }
  26. global $aantal_items_per_pagina;
  27. global $offset;
  28. global $huidige_pagina;
  29. global $aantal_paginas;
  30. $sql1 = mysql_query("SELECT COUNT(id) FROM ".$op) or die("SQL1:". mysql_error());
  31. $totaal_aantal = mysql_result($sql1, 0);
  32. $aantal_items_per_pagina = $max;
  33. $aantal_paginas = ceil($totaal_aantal / $aantal_items_per_pagina);
  34. $aantal_paginas+=1;
  35. $huidige_pagina = 0;
  36. if(isset($_GET['navigatiepagina']) && is_numeric($_GET['navigatiepagina']) && $_GET['navigatiepagina'] > 0 && $_GET['navigatiepagina'] < $aantal_paginas) {
  37. $huidige_pagina = $_GET['navigatiepagina'];
  38. $huidige_pagina-=1;
  39. }
  40. $offset = $huidige_pagina * $aantal_items_per_pagina;
  41. }
  42.  
  43.  
  44.  
  45. function navigatietonen()
  46. {
  47. global $huidige_pagina;
  48. global $aantal_paginas;
  49. $plaats = $_SERVER['PHP_SELF'].correctURL("navigatiepagina"); //URL nakijken (met var's enzo)
  50. ?>
  51. <form name="navigatie" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  52. <?php if ($huidige_pagina != 0) //De terugknoppen
  53. {
  54. ?>
  55. <input name="button" type="button" class="navigatie" onClick="window.location='<?php echo $plaats; ?>navigatiepagina=1'" value="<<" />
  56. <input name="button" type="button" class="navigatie" onClick="window.location='<?php echo $plaats; ?>navigatiepagina=<?php echo $huidige_pagina; ?>'" value="<" />
  57. <?php
  58. }
  59. ?>
  60. <select onChange="window.location=''+this.form.elements['navigatiebox'].value;" name="navigatiebox">
  61. <?php
  62. for($i=1; $i < $aantal_paginas; $i++) //Selectbox
  63. {
  64. ?>
  65. <option value="<? echo $plaats; ?>navigatiepagina=<? echo $i; ?>"<?= ($i - 1 == $huidige_pagina) ? " selected=\"selected\"" : "" ?>><? echo $i; ?></option>
  66. <?php
  67. }
  68. ?>
  69. </select>
  70. <?php
  71. if ($huidige_pagina != $aantal_paginas - 2) //De vooruitknoppen
  72. {
  73. ?>
  74. <input name="button" type="button" class="navigatie" onClick="window.location='<? echo $plaats; ?>navigatiepagina=<? echo $huidige_pagina + 2; ?>'" value=">" />
  75. <input name="button" type="button" class="navigatie" onClick="window.location='<? echo $plaats; ?>navigatiepagina=<? echo $aantal_paginas - 1; ?>'" value=">>" />
  76. <?php
  77. }
  78. }
  79. ?>


CODE: DISPLAY.PHP
  1. <html>
  2. <head>
  3. <title>Berichten</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. </head>
  6. <body>
  7. <TABLE BORDER="0" WIDTH="300" HEIGHT="15">
  8. <TR>
  9. <TD WIDTH="100">Naam</TD>
  10. <TD WIDTH="150">Bericht</TD>
  11. </TR>
  12. </TABLE>
  13. <?php
  14.  
  15. include("config.php");
  16. include("navigatie.php");
  17.  
  18. // Selecteren informatie
  19. $query = "SELECT * FROM ".$tabel." ORDER BY id DESC";
  20.  
  21. // Informatie in variable zetten
  22. $result = mysql_query($query) or die (mysql_error());
  23.  
  24. // Instellen loop
  25. while ($sql = mysql_fetch_assoc($result)) {
  26.  
  27. // Berichten plaatsen
  28. $naam = $sql['naam'];
  29. $bericht = nl2br(stripslashes(htmlspecialchars($sql['bericht'])));
  30. ?>
  31. <TABLE BORDER="0" WIDTH="300" HEIGHT="15">
  32. <TR>
  33. <TD WIDTH="100"><?php echo $naam; ?></TD>
  34. <TD WIDTH="150"><?php echo $bericht; ?></TD>
  35. </TR>
  36. </TABLE>
  37. <?php
  38. }
  39.  
  40. navigatie('berichten',2);
  41. navigatietonen();
  42. ?>
  43. </body>
  44. </html>

10 antwoorden

Gesponsorde links
Offline BNoise - 04/05/2006 12:11
Avatar van BNoise Nieuw lid Ik denk dat je dat weggehaalde stukje eventjes terug moet doen..
Offline marten - 04/05/2006 12:21 (laatste wijziging 04/05/2006 12:22)
Avatar van marten Beheerder
  1. <?php
  2. function navigatie($op, $max)
  3. {
  4.  
  5. $navigatie = 1;
  6.  
  7. if (isset($_GET['aantal']) && (($_GET['aantal'] == 8) || ($_GET['aantal'] == 10) || ($_GET['aantal'] == 15) || ($_GET['aantal'] == 20)) && is_numeric($_GET['aantal'])) //Juiste vorm controlen
  8. {
  9. $max = $_GET['aantal']; //Als het OK is, $max instellen
  10. }
  11. global $aantal_items_per_pagina;
  12. global $offset;
  13. global $huidige_pagina;
  14. global $aantal_paginas;
  15. $sql1 = mysql_query("SELECT COUNT(id) FROM ".$op) or die("SQL1:". mysql_error());
  16. $totaal_aantal = mysql_result($sql1, 0);
  17. $aantal_items_per_pagina = $max;
  18. $aantal_paginas = ceil($totaal_aantal / $aantal_items_per_pagina);
  19. $aantal_paginas+=1;
  20. $huidige_pagina = 0;
  21. if(isset($navigatie]) && is_numeric($navigatie]) && $navigatie] > 0 && $navigatie < $aantal_paginas) {
  22. $huidige_pagina = $navigatiepagina;
  23. $huidige_pagina-=1;
  24. }
  25. $offset = $huidige_pagina * $aantal_items_per_pagina;
  26. }
  27. ?>


BNoise het formulier zal niet zomaar weg gehaald zijn ;)
Probeer bovenstaande code eens 

Probleem: Het weg gehaalde stuk code bevat $_GET['navigatiepagina'] die ook in de functie gebruikt word. Omdat je deze niet meer hebt heb ik in de code deze gezet
Offline Ultimatum - 04/05/2006 12:58
Avatar van Ultimatum PHP expert volgens mij heb je ook geen LIMIT op de query staan waardoor hij geen 2 per pagina doet, maar meer
Offline Wouser - 04/05/2006 16:31 (laatste wijziging 04/05/2006 20:50)
Avatar van Wouser PHP interesse Heb geprobeerd martin maar werkt niet Ultimatum heb geprobeerd met limit maar toen deed ie het niet...

voorbeeldje hoe ik het had met LIMIT

selecteert bij iedere pagina 6 berichten...

  1. <?php
  2. function navigatie($op, $max)
  3. {
  4.  
  5. $navigatie = 1;
  6.  
  7. if (isset($_GET['aantal']) && (($_GET['aantal'] == 8) || ($_GET['aantal'] == 10) || ($_GET['aantal'] == 15) || ($_GET['aantal'] == 20)) && is_numeric($_GET['aantal'])) //Juiste vorm controlen
  8. {
  9. $max = $_GET['aantal']; //Als het OK is, $max instellen
  10. }
  11. global $aantal_items_per_pagina;
  12. global $offset;
  13. global $huidige_pagina;
  14. global $aantal_paginas;
  15. $sql1 = mysql_query("SELECT * FROM ".$tabel." ORDER BY id DESC LIMIT 0,6") or die("SQL1:". mysql_error());
  16. $totaal_aantal = mysql_result($sql1, 0);
  17. $aantal_items_per_pagina = $max;
  18. $aantal_paginas = ceil($totaal_aantal / $aantal_items_per_pagina);
  19. $aantal_paginas+=1;
  20. $huidige_pagina = 0;
  21. if(isset($navigatie) && is_numeric($navigatie) && $navigatie > 0 && $navigatie < $aantal_paginas) {
  22. $huidige_pagina = $navigatiepagina;
  23. $huidige_pagina-=1;
  24. }
  25. $offset = $huidige_pagina * $aantal_items_per_pagina;
  26. }
  27. ?>


IEMAND??? PLZ :$
Offline Frederic - 04/05/2006 21:12
Avatar van Frederic PHP ver gevorderde
  1. $sql1 = mysql_query("SELECT * FROM ".$tabel." ORDER BY id DESC LIMIT 0,6") or die("SQL1:". mysql_error());

Geef je aan hoeveel berichten je wil selecteren... Of wat is het probleem?
Offline Wouser - 04/05/2006 21:20 (laatste wijziging 04/05/2006 21:22)
Avatar van Wouser PHP interesse Als ik dat doe krijg ik dit de hele tijd...

SQL1:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY id DESC LIMIT 0,6' at line 1
Offline Ibrahim - 05/05/2006 09:22
Avatar van Ibrahim PHP expert eerst kopier je de code:

http://plaatscode.be/1093/

ten 2e lees je de uitleg:

http://plaatscode.be/1094/

ten 3e doe je wat in de uitleg staat:

  1. <?php
  2. //voorbeeld pagina:
  3. include "navigatie.php"; // dit is het bestand waar de code inzit
  4.  
  5. navigatie("gastenboek", 20); //tabel invullen + aantal
  6.  
  7.  
  8.  
  9. $SelecteerBerichten = mysql_query("SELECT * FROM gastenboek
  10. ORDER BY id DESC
  11. LIMIT
  12. ".$offset.", ".$aantal_items_per_pagina."
  13. ") or die("Fout tijdens selecteren query: <br />". mysql_error()
  14. );
  15.  
  16. while( $FetchBerichten = mysql_fetch_assoc( $SelecteerBerichten ) )
  17. {
  18. // iets fetchen
  19. }
  20.  
  21. navigatietonen();
  22. ?>


verbeter me als ik het niet goed heb Fréderic 
Offline Wouser - 05/05/2006 10:14 (laatste wijziging 05/05/2006 10:20)
Avatar van Wouser PHP interesse Nauw sorry hoor maar nu ben ik precies weer terug bij af 

http://www.wous...isplay.php

Dit had ik eerst ook alleen het probleem is dat hij gewoon steeds alle berichten laat zien op alle pagina's... Terwijl er maar *heb nu 10 berichten per pagina ingesteld navigatie("gastenboek", 10);* 10 berichten per pagina mogen staan.

display.php
http://plaatscode.be/1095/

navigatie.php
http://plaatscode.be/1096/

PS: nice site plaatscode.be heb gelijk bij fav. gezet erg handig 
Offline Ibrahim - 05/05/2006 10:20 (laatste wijziging 05/05/2006 10:25)
Avatar van Ibrahim PHP expert laat eens je code zien (van nu en pasten in plaatscode.be)
dan kijken we wel wat je fout hebt gedaan

edit:
je kan gedachten lezen 
even je bestanden bekijken

http://plaatscode.be/1097/
Offline Wouser - 05/05/2006 10:20 (laatste wijziging 05/05/2006 10:49)
Avatar van Wouser PHP interesse Heb ik al gedaan... staat bij vorige bericht ;)

Thanks siliecom14 hij doet het nu :D ben blij

probleem opgelost 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.262s