Tutorials

PHP MYSQL paging in een tabel

Een makkelijke methode om paging aan je site toe te voegen zonder paginanummering!

Pagina 1

Inleiding

Ik ben pas net begonnen met php programmeren en dus snapte ik van de paging tutorials die tot nu toe op het net stonden helemaal niets. Omdat ik al vrij veel van Javascript weet, heb ik met een mix tussen javascript, php en mysql een paging systeem ontwikkeld.
Het komt op het volgende neer.
1. Met javascript wordt de locatie veranderd; er komt "?pagina=0" achter of iets dergelijks!
2. Met php en mysql wordt een query uitgevoerd die de volgende 10 records selecteerd.
3. Dit wordt in een tabel verwerkt en klaar!

Er worden 2 plaatjes gebruikt in mijn tutorial deze kun je hier vinden:
http://www.informaticagsg.nl/leons/links.bmp
http://www.informaticagsg.nl/leons/rechts.bmp
zulke simpele plaatjes kun je natuurlijk ook zelf maken!

Veel succes met mijn tutorial. En als je een fout vind, laat het niet na om het mij te melden.
[email protected]

http://www.informaticagsg.nl/leons deze site heb ik gemaakt voor informatica. De techniek van deze tutorial zit er ook in verworven.
Pagina 2

Javascript/HTML

Dit is het script dat je helemaal onder in de body zet!
Het zijn de knopjes om te veranderen van pagina.


<table>
<tr bgcolor="black">
<td colspan = 6>
<img align="left" src="links.bmp" onclick="window.location = 'http://www.adres.nl/index.php?pagina=<?php print($paginadown); ?>'">
<img align="right" src="rechts.bmp" onclick="window.location = 'http://www.adres.nl/index.php?pagina=<?php print($paginaup); ?>'">
</td>
</tr>
</table>


Zoals je ziet hoef je nu alleen nog maar $paginaup/down te veranderen in het begin van de pagina, maar eerst zal ik alles zorgvuldig uitleggen.

Je begint met het maken van een tabel, deze komt onder de tabel met informatie. We gaan er hier vanuit dat de tabel 6 colommen heeft wat je kunt zien aan de <td> tag.
Dan komen de plaatjes, dit zijn gewoon pijltjes naar links en rechts.
De onclick is hier het belangrijkste.
window.location = 'http://www.adres.nl/index.php?pagina=<?php print($paginaup); ?>';

Dit zorgt ervoor dat php het paginanummer kan lezen.
Pagina 3

Paginanummer verwerken met php

Dit is het php-script waarmee de maximale pagina wordt vastgesteld, met die informatie worden $paginaup en $paginadown gemaakt. Zet dit bovenin je script. Dit is essensieel voor de vorige stap.

<?php
$row1 = mysql_result(mysql_query("SELECT COUNT(*) FROM tabel"));
if($row1[0] > ($pagina + 10))
{
$paginaup = $pagina + 10;
}
else
{
$paginaup = $pagina;
}
if($pagina >= 10)
{
$paginadown = $pagina - 10;
}
else
{
$paginadown = 0;
}
?>

Dit script zorgt ervoor dat er een maximale pagina is en een minimale, omdat alleen de maximale pagina te maken heeft met $query1 staan alleen om het max gedeelte de brackets.
Als het aantal records groter is dan het paginanummer + 10 dan kan je niet meer verder gaan. Is dit echter niet het geval, dan wordt $paginaup met 10 vergroot.
Als $pagina groter of gelijk is aan 10 dan mag je terugbladeren; Is dit niet zo, dan wordt $pagina de eerste record!

Zo, we hebben nu ons paginanummer vergroot door op het plaatje te klikken. Nu hoeven we alleen nog de tabel aan te passen.

<table width="100%" bgcolor="dimgray" border="1">
<tr>
<td bgcolor="darkslategray"><font color="aqua">ID-nummer</td>
<td bgcolor="darkslategray"><font color="aqua">eigenschap1</td>
<td bgcolor="darkslategray"><font color="aqua">eigenschap2</td>
<td bgcolor="darkslategray"><font color="aqua">eigenschap3</td>
<td bgcolor="darkslategray"><font color="aqua">eigenschap4</td>
<td bgcolor="darkslategray"><font color="aqua">eigenschap5</td>
</tr>
<?php
if($pagina=="")
{
  $query2 = "SELECT * FROM nieuws LIMIT 0, 10";
}
else
{
  $query2 = "SELECT * FROM nieuws LIMIT $pagina, 10";
}
$resultaat2 = mysql_query($query2);
while ( $row2 = mysql_fetch_row($resultaat2) )
{
  ?>
  <tr>
  <td><font color="aqua"><?php print($row2[0]); ?></td>
  <td><font color="aqua"><?php print($row2[1]); ?></td>
  <td><font color="aqua"><?php print($row2[2]); ?></td>
  <td><font color="aqua"><?php print($row2[3]); ?></td>
  <td><font color="aqua"><?php print($row2[4]); ?></td>
  <td><font color="aqua"><?php print($row2[5]); ?></td>
  </tr>
  <?php
}
?>
</table>

Dit voegt zolang er records zijn nieuwe rijen toe tot hij bij 10 records is, dit komt door de LIMIT in $query2. Als je voor de eerste keer op de site komt is $pagina zeer waarschijnlijk 'undefined' dus begin je bij de eerste record. Als je op de pijltjes hebt geklikt wordt $pagina 0, 10, 20 enz. Dan worden de resultaten weergegeven beginnend bij $pagina.

btw dit script zet je achter het script dat bovenaan deze pagina staat. De volgorde tussen het eerste script en deze maakt niet uit!

Reacties

0
Nog geen reacties.