Hi Leute,
ich nutze folgendes Script für eine Blätterfunktion:
Es funktioniert soweit alles prima. Es zählt richtig, gibt somit die richtigen seitenanzahl an...allerdings werden bei Klick auf die nächste Seite dieselben Ergebnisse wie auf Seite 1 angezeigt.
Ich glaube einen Denkfehler gemacht zu haben, komme allerdings nicht drauf...
Danke im Voraus
zamo76
ich nutze folgendes Script für eine Blätterfunktion:
PHP:
$seite = $_GET['seite']; //Abfrage auf welcher Seite man ist
//Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1
if(!isset($seite))
{
$seite = 1;
}
//Einträge pro Seite: Hier 15 pro Seite
$eintraege_pro_seite = $limit;
//Ausrechen welche Spalte man zuerst ausgeben muss:
$start = $seite * $eintraege_pro_seite - $eintraege_pro_seite;
//Tabelle Abfragen
//Tabelle heißt hier einfach: Tabelle
$abfrage = "SELECT * FROM `snapmax_angebote` WHERE `hersteller` LIKE '".mysql_real_escape_string($_GET['hersteller'])."%' AND `festplatte` ".formatExpression($_GET['festplatte'])." AND `bildschirm` ".formatExpression($_GET['bildschirm'])." AND `prozessor` LIKE '".mysql_real_escape_string($_GET['prozessor'])."%' AND `grafikkarte` LIKE '".mysql_real_escape_string($_GET['grafikkarte'])."%' AND `speicher` ".formatExpression($_GET['speicher'])." AND `takt` ".formatExpression($_GET['takt'])." AND `ps22` ".formatExpression($_GET['ps22'])." AND `seller`LIKE '".mysql_real_escape_string($_GET['seller'])."%' ORDER BY `".mysql_real_escape_string($orderby)."` LIMIT $start, $eintraege_pro_seite";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo $row->id.""; // Hier die Ausgabe der Einträge
}
//Jetzt kommt das "Inhaltsverzeichnis",
//sprich dort steht jetzt: Seite: 1 2 3 4 5
//Wieviele Einträge gibt es überhaupt
//Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten
//also der gleiche Text wie in der Variable $abfrage, bloß das hier das LIMIT fehlt
//Sonst funktioniert die Blätterfunktion nicht richtig,
//und hier kann nur 1 Feld abgefragt werden, also id
$result = mysql_query("SELECT * FROM `snapmax_angebote` WHERE `hersteller` LIKE '".mysql_real_escape_string($_GET['hersteller'])."%' AND `festplatte` ".formatExpression($_GET['festplatte'])." AND `bildschirm` ".formatExpression($_GET['bildschirm'])." AND `prozessor` LIKE '".mysql_real_escape_string($_GET['prozessor'])."%' AND `grafikkarte` LIKE '".mysql_real_escape_string($_GET['grafikkarte'])."%' AND `speicher` ".formatExpression($_GET['speicher'])." AND `takt` ".formatExpression($_GET['takt'])." AND `ps22` ".formatExpression($_GET['ps22'])." AND `seller`LIKE '".mysql_real_escape_string($_GET['seller'])."%' ORDER BY `".mysql_real_escape_string($orderby)."`");
$menge = mysql_num_rows($result);
//Errechnen wieviele Seiten es geben wird
$wieviel_seiten = $menge / $eintraege_pro_seite;
//Ausgabe der Seitenlinks:
echo "<div align=\"center\">";
echo "<b>Seite:</b> ";
//Ausgabe der Links zu den Seiten
for($a=0; $a < $wieviel_seiten; $a++)
{
$b = $a + 1;
//Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben
if($seite == $b)
{
echo " <b>$b</b> ";
}
//Aus dieser Seite ist der User nicht, also einen Link ausgeben
else
{
echo " <a href=\"?hersteller=$hersteller&festplatte=$festplatte&bildschirm=$bildschirm&grafikkarte=$grafikkarte&$prozessor=$prozessor&speicher=$speicher&takt=$takt&ps22=$ps22&seller=$seller&seite=$b\">$b</a> ";
}
}
echo "</div>";
Es funktioniert soweit alles prima. Es zählt richtig, gibt somit die richtigen seitenanzahl an...allerdings werden bei Klick auf die nächste Seite dieselben Ergebnisse wie auf Seite 1 angezeigt.
Ich glaube einen Denkfehler gemacht zu haben, komme allerdings nicht drauf...
Danke im Voraus
zamo76