Hi!
Hab hier spontan mal wieder reingeschaut und gleich wieder hilfe gefunden ein probiert und angepasst und schon hat es mir geholfen... aber ich habe dabei glaube ich einen fehler entdeckt....
So hier der code wie er im "schnipselforum" steht:
@sky ist schon der korrigierte!
if (!$offset || $offset<0) $offset = 0;
$diff = 10;
$r = mysql_query("SELECT count(*) FROM tabelle");
$anz = mysql_result($r,0);
if (!$offset || $offset<0) { $offset = 0; $disabled[prev] = TRUE; }
if (($offset + $diff) >= $anz) { $diff = $anz - $offset; $disabled[next] = TRUE;}
$r = mysql_query("SELECT * FROM tabelle LIMIT $offset,$diff");
while ($daten = mysql_fetch_array($r)) {
//anzeige der datensätze...
}
//navigation:
if ($disabled[prev]!==TRUE) echo '<a href="'.$PHP_SELF.'?offset='.($offset-$diff).'">Vorherige Seite</a>';
if ($disabled[next]!==TRUE) echo '<a href="'.$PHP_SELF.'?offset='.($offset+$diff).'">Nächste Seite</a>';
Soweit so gut hab das folgendermaßen angepasst....
if (!$offset || $offset<0) $offset = 0;
$diff = 2;
$r = mysql_query("SELECT count(*) FROM tippqualigp11");
$anz = mysql_result($r,0);
if (!$offset || $offset<0) { $offset = 0; $disabled[prev] = TRUE; }
if (($offset + $diff) >= $anz) { $diff = $anz - $offset; $disabled[next] = TRUE;}
$r = mysql_query("SELECT * FROM tippqualigp11 LIMIT $offset,$diff");
while ($daten = mysql_fetch_array($r)) {
$lesen = mysql_query("select * from ergebnissequali where Grandprix='Grand-Prix von Frankreich in Magny-Cours'");
$eintrag= mysql_fetch_array($lesen);
print("<center><table width='50%'border=1>");
print("<tr><td BGCOLOR='$bgcolor3' width='20%'>");
print("<center>Getippt am: ".$daten["date"]."<br></center>");
print("<center>Tipp von ".$daten["username"]."<br></center></td>");
print("<td><center><BGCOLOR='$bgcolor3' width='15%'><b>Der Tipp</b><br></center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz1"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz2"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz3"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz4"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz5"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz6"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz7"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz8"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz9"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz10"]."</center></td>");
print("<td><center><BGCOLOR='$bgcolor3' width='15%'><b>Das Ergebniss</b><br></center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz1"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz2"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz3"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz4"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz5"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz6"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz7"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz8"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz9"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz10"]."</center></td>");
print("</table>");
}
print("<br><b>");
if ($disabled[prev]!==TRUE) echo '<a href="qualiuebersicht11.php?offset='.($offset-$diff).'">Vorherige Seite</a>';
if ($disabled[next]!==TRUE) echo '<a href="qualiuebersicht11.php?offset='.($offset+$diff).'">Nächste Seite</a>';
Jetzt zum Problem....(habe anstatt 10 die 2 als differenz genommen um das mal zu testen)
wenn ich nun eine grade zahl habe werden mir immer zwei datensätze angezeigt also korrekt..ich gehe weiter und auf der nächsten seite auch....so wenn nun aber eine ungerade zahl an datenbankeinträgen existiert zb 5 dann kommt die erste seite mit dem eintrag a und b dann die zweite mit c und d und dann die dritte mit e aber wenn ich jetzt wieder zurück gehen möchte kommt anstatt c und d ...d und e also wird der letzte eintrag nochmal angezeigt......
kann mir da mal jemand aus der patsche helfen???
Grüße aus dem Norden
Oli
Hab hier spontan mal wieder reingeschaut und gleich wieder hilfe gefunden ein probiert und angepasst und schon hat es mir geholfen... aber ich habe dabei glaube ich einen fehler entdeckt....
So hier der code wie er im "schnipselforum" steht:
@sky ist schon der korrigierte!
if (!$offset || $offset<0) $offset = 0;
$diff = 10;
$r = mysql_query("SELECT count(*) FROM tabelle");
$anz = mysql_result($r,0);
if (!$offset || $offset<0) { $offset = 0; $disabled[prev] = TRUE; }
if (($offset + $diff) >= $anz) { $diff = $anz - $offset; $disabled[next] = TRUE;}
$r = mysql_query("SELECT * FROM tabelle LIMIT $offset,$diff");
while ($daten = mysql_fetch_array($r)) {
//anzeige der datensätze...
}
//navigation:
if ($disabled[prev]!==TRUE) echo '<a href="'.$PHP_SELF.'?offset='.($offset-$diff).'">Vorherige Seite</a>';
if ($disabled[next]!==TRUE) echo '<a href="'.$PHP_SELF.'?offset='.($offset+$diff).'">Nächste Seite</a>';
Soweit so gut hab das folgendermaßen angepasst....
if (!$offset || $offset<0) $offset = 0;
$diff = 2;
$r = mysql_query("SELECT count(*) FROM tippqualigp11");
$anz = mysql_result($r,0);
if (!$offset || $offset<0) { $offset = 0; $disabled[prev] = TRUE; }
if (($offset + $diff) >= $anz) { $diff = $anz - $offset; $disabled[next] = TRUE;}
$r = mysql_query("SELECT * FROM tippqualigp11 LIMIT $offset,$diff");
while ($daten = mysql_fetch_array($r)) {
$lesen = mysql_query("select * from ergebnissequali where Grandprix='Grand-Prix von Frankreich in Magny-Cours'");
$eintrag= mysql_fetch_array($lesen);
print("<center><table width='50%'border=1>");
print("<tr><td BGCOLOR='$bgcolor3' width='20%'>");
print("<center>Getippt am: ".$daten["date"]."<br></center>");
print("<center>Tipp von ".$daten["username"]."<br></center></td>");
print("<td><center><BGCOLOR='$bgcolor3' width='15%'><b>Der Tipp</b><br></center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz1"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz2"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz3"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz4"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz5"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz6"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz7"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz8"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz9"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$daten["platz10"]."</center></td>");
print("<td><center><BGCOLOR='$bgcolor3' width='15%'><b>Das Ergebniss</b><br></center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz1"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz2"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz3"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz4"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz5"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz6"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz7"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz8"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz9"]."</center>");
print("<center><BGCOLOR='$bgcolor1'>".$eintrag["platz10"]."</center></td>");
print("</table>");
}
print("<br><b>");
if ($disabled[prev]!==TRUE) echo '<a href="qualiuebersicht11.php?offset='.($offset-$diff).'">Vorherige Seite</a>';
if ($disabled[next]!==TRUE) echo '<a href="qualiuebersicht11.php?offset='.($offset+$diff).'">Nächste Seite</a>';
Jetzt zum Problem....(habe anstatt 10 die 2 als differenz genommen um das mal zu testen)
wenn ich nun eine grade zahl habe werden mir immer zwei datensätze angezeigt also korrekt..ich gehe weiter und auf der nächsten seite auch....so wenn nun aber eine ungerade zahl an datenbankeinträgen existiert zb 5 dann kommt die erste seite mit dem eintrag a und b dann die zweite mit c und d und dann die dritte mit e aber wenn ich jetzt wieder zurück gehen möchte kommt anstatt c und d ...d und e also wird der letzte eintrag nochmal angezeigt......
kann mir da mal jemand aus der patsche helfen???
Grüße aus dem Norden
Oli
Kommentar