Nieuw lid |
|
Hallo,
ik probeerde het pagina-systeem van fangorn te integreren in mijn site, maar daar ervaar wat probleempjes mee. Het gaat om dit script:
http://www.site...P_en_MySQL
Ik heb het omgevormd tot de volgende code:
<?php
$res1 = mysql_query("SELECT COUNT(id) FROM strategy") or die("res1: ".mysql_error()); // vraag het AANTAL items op
$items_totaal = mysql_result($res1, 0); // het totaal aantal items
mysql_free_result($res1); // geef het resultaat vrij
$items_per_pagina = 14; // vrij te kiezen
$aantal_paginas = ceil($items_totaal / $items_per_pagina); // het aantal items per pagina
// de huidige pagina opvragen
$huidige_pagina = 0; // default
if(isset($_GET['p']) && is_numeric($_GET['p']) && $_GET['p'] > 0 && $_GET['p'] < $aantal_paginas) {
$huidige_pagina = $_GET['p'];
}
// items van de huidige pagina ophalen
$offset = $huidige_pagina * $items_per_pagina;
$res2 = mysql_query("SELECT * FROM strategy ORDER BY id DESC LIMIT ".$offset.","
.$items_per_pagina) or die("res2:". mysql_error());
/*
doe hier iets met de gegevens in $res2
...
*/
// resultaten vrijgeven
mysql_free_result($res2);
function querystring($nav_var) {
$qstring = "?"; // de querystring
if(sizeof($_GET) > 1 || !in_array($nav_var, array_keys($_GET))) {
// meer queryvariabelen te onthouden dan enkel $_GET[$nav_var]
foreach($_GET as $k => $v) {
if($k != $nav_var) {
$qstring .= $k."=".$v."&";
}
}
}
return $qstring;
}
// navigatie
// scriptnaam + de querystring, met uitzondering van de navigatie-variabele
$q = $_SERVER['PHP_SELF'].querystring("p");
for($i = 0; $i < $aantal_paginas; $i++) {
if($huidige_pagina == $i) {
// huidige pagina is niet klikbaar
echo "<b>".($i+1)."</b>";
} else {
// een andere pagina - gebruik hier $q
echo "<a href=\"".$q."p=".$i."\">".($i+1)."</a>";
}
// deel-streepje tussen alle items
if($i < $aantal_paginas - 1) {
echo " - ";
}
}
?>
<?php $items_totaal = mysql_result($res1, 0); // het totaal aantal items $items_per_pagina = 14; // vrij te kiezen $aantal_paginas = ceil($items_totaal / $items_per_pagina); // het aantal items per pagina // de huidige pagina opvragen $huidige_pagina = 0; // default if(isset($_GET['p']) && is_numeric($_GET['p']) && $_GET['p'] > 0 && $_GET['p'] < $aantal_paginas) { $huidige_pagina = $_GET['p']; } // items van de huidige pagina ophalen $offset = $huidige_pagina * $items_per_pagina; $res2 = mysql_query("SELECT * FROM strategy ORDER BY id DESC LIMIT ".$offset."," /* doe hier iets met de gegevens in $res2 ... */ // resultaten vrijgeven function querystring($nav_var) { $qstring = "?"; // de querystring // meer queryvariabelen te onthouden dan enkel $_GET[$nav_var] foreach($_GET as $k => $v) { if($k != $nav_var) { $qstring .= $k."=".$v."&"; } } } return $qstring; } // navigatie // scriptnaam + de querystring, met uitzondering van de navigatie-variabele $q = $_SERVER['PHP_SELF'].querystring("p"); for($i = 0; $i < $aantal_paginas; $i++) { if($huidige_pagina == $i) { // huidige pagina is niet klikbaar echo "<b>".($i+1)."</b>"; } else { // een andere pagina - gebruik hier $q echo "<a href=\"".$q."p=".$i."\">".($i+1)."</a>"; } // deel-streepje tussen alle items if($i < $aantal_paginas - 1) { } } ?>
Nu is mijn probleem het volgende:
Hij maakt mooit de navigatielijn aan (dus: 1 - 2 - 3 - ...), en die zijn ook allemaal gelinkt, maar als ik nu van pagina 1 naar 2 wil gaan door op '2' te klikken, dan blijft hij gewoon de informatie van op pagina 1 geven (hoewel de twee nu wel vet gedrukt staat...).
Verder houdt het script zich ook niet aan het aantal toegelaten items per pagina, ik heb ingesteld dat er 14 getoond mogen worden, maar hij laat ze gewoon allemaal zien....
Er staat wel:
#
/*
#
doe hier iets met de gegevens in $res2
#
...
#
*/
Maar wat moet daar ongeveer mee gebeuren?
Alvast bedankt!!
|