Paging i PHP virker ikke
Jeg har nu siddet i mega lang tid og roddet med mit paging problem. Jeg har fået det nogenlunde til at virke, så den faktisk viser de 10 på hver side. Men jeg skal kun have vist 5, hvilket den slet ikke kan finde ud af. Jeg ved godt hvorfor den ikke kan finde ud af det, men jeg ved ikke hvordan jeg løser det.if($_GET['page'])
{
$limit = paging::writeLimit($_GET['page'], 5);
}
else
{
$limit = "5";
}
$kommando = "SELECT * FROM anmeldelser INNER JOIN bruger ON bruger.bruger_id = anmeldelser.anmeldelse_brugerID ORDER BY anmeldelse_id ASC LIMIT $limit";
$resultat = mysql_query($kommando) or die(mysql_error());
while($hent = mysql_fetch_assoc($resultat))
{
$color = ($color == '#333333') ? '#999999' : '#333333';
echo "
<tr>
<td valign='top' width='110px' height='100px' rowspan='3'><img width='100px' height='100px' src='". $hent['anmeldelse_billede']. "'></td>
<td bgcolor='". $color. "' margin-left='10px' height='5px' valign='top' width='554px' colspan='2'>". $hent['anmeldelse_overskrift']. "</font></td>
<tr>
<td bgcolor='". $color. "' margin-left='10px' height='60px' valign='top' width='554px' colspan='2'>". $hent['anmeldelse_indhold']. "</font></td>
</tr>
<tr>
<td bgcolor='". $color. "' height='5px' width='300px' valign='top'>/". $hent['bruger_brugernavn']. "</td>
<td bgcolor='". $color. "' height='5px' width='300px' valign='top'><div align='right'>". $hent['anmeldelse_link']. "</div></td>
<tr>
<td><br></td>
</tr>
</tr>
</tr>
";
}
echo "</table>";
echo paging::pageNum(5, "SELECT * FROM anmeldelser INNER JOIN bruger ON bruger.bruger_id = anmeldelser.anmeldelse_brugerID");
Og her er min funktion:
class paging
{
function pageNum($rowLimit, $sql)
{
$getQuery = mysql_query($sql);
$countRows = mysql_num_rows($getQuery);
$pages = ceil($countRows/$rowLimit);
$minus = $_GET['page']-1;
if($_GET['page'] > 1)
{
echo "<a href='?page=$minus'>Forrige</a> ";
}
for($i=1;$i<=$pages;$i++)
{
echo "<a href='?side=anmeldelser&page=$i'>$i</a> ";
}
$plus = $_GET['page']+1;
if($_GET['page'] < $pages)
{
echo "<a href='?page=$plus'>Næste</a>";
}
}
function writeLimit($page, $rowLimit)
{
$output = ($page-1) . "0,$rowLimit";
return $output;
}
}
Jeg har roddet lidt med det, og har fundet ud af at ved hjælp af denne sætning: $limit = paging::writeLimit($_GET['page'], 5); sender den $_GET['page'](som er sidenummeret, som står i urlen) til funktionen. Den behandler den så her: $output = ($page-1) . "0,$rowLimit";
Her ligger problemet så. For den tager det nummer der står i url'en og "joiner" til 0 bagpå. Så den vil altid kun ville kunne tage 10 ad gange, uanset om jeg ændre limit eller ej, for så vil den bare faile og på de sidste sider vise blank, da den HENTER de 10.
Jeg vil gerne give 200 points til ham der kan hjælpe mig, da det er ret så vigtigt. Tusinde tak på forhånd.