Php Paging
Hei allejeg sider med et problem inden for paging - den virker som sådan koden, har bare det problem at når jeg trykker på en af de tal der er i bunden for at kommer videre vælger den at smide mig tilbage på min forside i stedet for at visse content fra mn db.
<?php
$db = mysqli_connect("localhost","root","","golfen"); #Host, brugernavn, password, database
#Hent informationer så vi ved hvor mange elementer vi har med at gøre
$sql = "SELECT * FROM baner";#Forespørgselsvariabel
$res = mysqli_query($db, $sql) or die(mysqli_error($db));#Handling skal bruge to parametre / or die skal kun bruges under development. Or die viser hvis der er fejl med $db, skal aldrig vises under production.
$intQuery = mysqli_num_rows($res);#Tæller handlingen - tæller hvor mange der eri databasen. Den vil få en værdi.
#echo $intQuery; #Udskriver hvor mange poster der findes i test
$intantalprside = 1; #Definer at vi vil se fire poster pr. side
$intantalprrow = 1; #Definerer hvor mange elementer vi skal have pr. række
$intantalsider = ceil($intQuery / $intantalprside);#Udregner hvor mange sider der er i alt. Vi runder op med ceil for ellers mister vi en post
#echo $intantalsider;#Udskriver antal sider
#Undersøger hvilken side vi er på
if(!isset($_GET['id']))#Hvis der ikke eksistererer noget i adresselinjen der hedder page. Page-værdien SKAL være et tal
{
$intaktuelside = 1;#Sæt intaktuelside til et
}else{
$intaktuelside = (int)$_GET['id'];
}
#Sikrer os at sidetallet i page ikke kan overskride det max antal sider der eksisterer
if($intaktuelside > $intantalsider)
{
$intaktuelside = $intantalsider;
}
#Sikrer os at sidetallet i page ikke kan blive mindre end første side
if($intaktuelside < 1)
{
$intaktuelside = 1;
}
# Definerer en offset (hvor vores databaseudtræk skal starte).
$offset = ($intaktuelside - 1) * $intantalprside;
#echo $offset."<br /><br />";
#Hent informationer og udskriver
$sql = "SELECT * FROM baner LIMIT ".$offset.", ".$intantalprside;#Forespørgselsvariabel. En limit har et offset (hvor den skal starte), og et antal poster (hvor mange der skal hentes frem)
$res = mysqli_query($db, $sql) or die(mysqli_error($db));#Handling skal bruge to parametre / or die skal kun bruges under development. Or die viser hvis der er fejl med $db, skal aldrig vises under production.
echo "<table border='1'><tr>";
$i = 1;
while($row = mysqli_fetch_array($res))
{
echo "<td width='400'>";
echo "<strong>".$row['name']."</strong><br />";
echo $row['specs'];
echo "</td>";
if($i == $intantalprrow)
{
echo "</tr><tr>";
$i = 1;
}else{
$i++;
}
}
echo "</tr></table>";
#Definerer hvor hvor mange tal der skal være på hver side af det aktuelle
$intlinks = 3;
if($intaktuelside > 1)
{
echo "<a href='".$_SERVER['PHP_SELF']."?id=3&bid='><<</a> ";
$tilbage = $intaktuelside - 1;
echo "<a href='".$_SERVER['PHP_SELF']."?id=3&bid=".$tilbage."'><</a> ";
}
for($i = ($intaktuelside - $intlinks); $i < (($intaktuelside + $intlinks) + 1); $i++ ){#En for-lykke er i tre elementer: 1. hvilken variabel arbejder vi med, 2. hvor lang tid skal vi arbejde med lykken, 3. hvordan kommer vi videre. +1 i 2. element gør at vi
if($i > 0 && $i <= $intantalsider)
{
if($i == $intaktuelside)
{
echo "<strong>".$i."</strong> ";
}else{
echo "<a href='".$_SERVER['PHP_SELF']."?id=3&bid=".$i."'>".$i."</a> ";
}
}
}
if($intaktuelside < $intantalsider)
{
$frem = $intaktuelside + 1;
echo " <a href='".$_SERVER['PHP_SELF']."?id=3&bid=".$frem."'>></a> ";
echo "<a href='".$_SERVER['PHP_SELF']."?id=3&bid=".$intantalsider."'>>></a> ";
}
?>
På forhånd tak :)