login  Naam:   Wachtwoord: 
Registreer je!
 Forum

PHP/MYSQL Pagina nummering (Opgelost)

Offline Cylon - 02/01/2010 12:11
Avatar van CylonLid
  1. <?php
  2. require_once('db.php');
  3. ?>
  4. <link href="inculde/style.css" rel="stylesheet" type="text/css">
  5.  
  6. <table width="74%" border="0">
  7. <td width="6%">Status</td>
  8. <td width="38%">Title</td>
  9. <td width="13%">Spotter</td>
  10. <td width="13%">Datum</td>
  11. <td width="30%">Categorie</td>
  12. </table>
  13. <?
  14. $query = mysql_query("SELECT * FROM info WHERE cat='".$_GET['cat']."'") or die(mysql_error()); // gegevens ophalen categorie met meegegeven cat nummer
  15. while($info = mysql_fetch_array($query)) {
  16.  
  17. $Query = mysql_query("SELECT user_name FROM fusion_users WHERE user_id='".$info['poster']."'") or die(mysql_error());
  18. $userdata = mysql_fetch_array($Query);
  19. $username = $userdata[0];
  20.  
  21.  
  22. ?>
  23. <table width="74%" border="0">
  24. <tr>
  25. <td width="6%"><img src="http://usenet2go.org/site/images/status/<?=$info['status']?>.gif"></td>
  26. <td width="38%"><?=$info['title']?></td>
  27. <td width="13%"><? echo $username ?></td>
  28. <td width="13%"><?=$info['datum']?></td>
  29. <td width="30%"><img src="http://usenet2go.org/site/images/cat/<?=$info['cat']?>.gif"></td>
  30. </tr>
  31. </table>
  32.  
  33. <? } ?>



Hallo,
Ik heb dit gemaakt om de gegevens uit db te lezen per cat
Maar ik heb all ?cat= gebruikt om de cat uit te lezen .
Maar hoe krijg ik nu een pagina numering er in ?
Met 50 records per pagina.


Met vrienderljken groeten
Cylon

2 antwoorden

Gesponsorde links
Offline Stefan14 - 02/01/2010 17:30 (laatste wijziging 02/01/2010 17:31)
Avatar van Stefan14 PHP gevorderde Ik heb jouw script aangepast zodat deze een paginanummering heeft, en tevens diverse verbeterpunten aangepast.

Bestudeer het eens goed, en zie dat het eigenlijk vrij simpel is.

  1. <?php
  2.  
  3. //verbeterpunten:
  4. //<? vervangen door <?php, alleen <? levert op sommige servers problemen op, en zou dus problemen opleveren bij een evt. verhuizing.
  5. //<tr></tr> toegevoegd aan de eerste tabel
  6. //de query's netter/duidelijker opgeschreven
  7. //de query's en de resultset in een aparte variabele gezet, dit maakt eventueel debuggen gemakkelijker.
  8. //de enkele quotes rond de variabelen in de query weggehaald, bij numerieke waardes is dit niet nodig.
  9. //de mogelijkheid tot mysql injection (hacken) weggenomen door de informatie uit de url te neutraliseren.
  10. //het in een variabele zetten van de username verkort met een simpele functie.
  11.  
  12. //aanpassingen:
  13. //de query aanpassen zodat er max. 50 resultaten per keer worden opgehaald.
  14. //de query aanpassen zodat aan de hand van het huidige paginanummer, de juiste 50 records opgehaald worden.
  15. //tellen hoeveel resultaten er in totaal zijn en a.d.h.v. dat aantal het aantal pagina's bepalen.
  16. //onderaan de pagina een rij met paginanummers toegevoegd met een for loop.
  17.  
  18. require_once('db.php');
  19. ?>
  20. <link href="inculde/style.css" rel="stylesheet" type="text/css">
  21.  
  22. <table width="74%" border="0">
  23. <tr>
  24. <td width="6%">Status</td>
  25. <td width="38%">Title</td>
  26. <td width="13%">Spotter</td>
  27. <td width="13%">Datum</td>
  28. <td width="30%">Categorie</td>
  29. </tr>
  30. </table>
  31.  
  32. <?php
  33. $aantalperpagina = 50;
  34. if ($_GET['pagina'] != '' && ctype_digit($_GET['pagina']))
  35. {
  36. $start = ($_GET['pagina']-1) * $aantalperpagina;
  37. }
  38. else
  39. {
  40. $start = 0;
  41. }
  42.  
  43.  
  44. $query = "SELECT
  45. *
  46. FROM
  47. info
  48. WHERE
  49. cat=".mysql_real_escape_string($_GET['cat'])."
  50. LIMIT ".$start.",".$aantalperpagina."";
  51. $result = mysql_query($query) or die(mysql_error());
  52.  
  53. while($info = mysql_fetch_assoc($result))
  54. {
  55. $query = "SELECT
  56. user_name
  57. FROM
  58. fusion_users
  59. WHERE
  60. user_id = ".$info['poster'];
  61. $result = mysql_query($query) or die(mysql_error());
  62. $username = mysql_result($result,0,'user_name');
  63. ?>
  64.  
  65. <table width="74%" border="0">
  66. <tr>
  67. <td width="6%"><img src="http://usenet2go.org/site/images/status/<?=$info['status']?>.gif"></td>
  68. <td width="38%"><?=$info['title']?></td>
  69. <td width="13%"><? echo $username ?></td>
  70. <td width="13%"><?=$info['datum']?></td>
  71. <td width="30%"><img src="http://usenet2go.org/site/images/cat/<?=$info['cat']?>.gif"></td>
  72. </tr>
  73. </table>
  74. <?php
  75. }
  76.  
  77. $query = "SELECT
  78. COUNT(*) AS aantal
  79. FROM
  80. info
  81. WHERE
  82. cat=".mysql_real_escape_string($_GET['cat']);
  83. $result = mysql_query($query) or die(mysql_error());
  84. $totaalaantal = mysql_result($result,0,'user_name');
  85.  
  86. $aantalpaginas = ceil($totaalaantal / $aantalperpagina);
  87. for ($i=1; $i<=$aantalpaginas; $i++)
  88. {
  89. if ($_GET['pagina'] == $i)
  90. {
  91. echo '<b><a href="pagina.php?pagina='.$i'">'.$i.'</a></b>';
  92. }
  93. else
  94. {
  95. echo '<a href="pagina.php?pagina='.$i'">'.$i.'</a>';
  96. }
  97. echo '&nbsp;&nbsp;&nbsp;';
  98. }
  99. ?>


Ik heb het overigens niet getest, maar je hebt dan nu in ieder geval een opzet om verder te kunnen.
Bedankt door: Cylon
Offline Cylon - 02/01/2010 21:23
Avatar van Cylon Lid Bedankt ieder geval krijg nu alleen maar 1 item te zien
Zit nog even te kijken waar dat aan licht kan niet vinden waar


Gr lennard
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.203s