Blätterfunktion ergänzen

@kyoya
Der 2. Versuch klappt mit
PHP:
$datensaetze_pro_seite="1000"
NICHT aber mit
PHP:
$datensaetze_pro_seite="10"
.
Wo ich die 1000 unterbringen soll bleibt ein Rätsel. Und noch etwas: Wenn ich bei
PHP:
$datensaetze_pro_seite="10"
die Zahl 10 ändere zB in 5 oder 3 werden plötzlich leere Seiten erzeugt.
Moni
 
Warum schriebst du integer in Quotes und warum jagst du $_GET['go'] durch mysql_real_escape_string?
Beides sind doch integer, da ist ein typecasting nach int sinnvoller.

Zum allgemeinen Verständnis:
  • Du willst Datensätze aus der Tabelle "news" anzeigen.
  • Die 300 letzten Datensätze sollen übersprungen werden.
  • Pro Seite sollen 10 Datensätze angezeigt werden.

PHP:
$aktuelle_seite = (int) $_GET['go'];
$start = ($aktuelle_seite - 1) * $datensaetze_pro_seite + 300;
$abfrage = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT $start,$datensaetze_pro_seite");

Wenn dieser Code nicht funktioniert, wäre es schön wenn du mal einen MySQL-Dump und den Source-Code anhängen könntest. So auf blauen dunst ist ein Debugging immer recht schwierig.

Gruß Kyoya Stefan
 
Hi,

außerdem solltest du eine Fehlerbehandlung einfügen.
Das einfachste Beispiel für ein Fehler-Szenario ist, dass jemand für den GET-Parameter 'go' -30 setzt.
Dieser wird auch richtig in einen Integer umgewandelt und ergibt dann nach der Gleichung für $start einen Wert von -10.
Und damit taucht der erste Fehler seitens MySQL auf. Dann werden noch mehr Fehler von den anderen Funktionen ([phpf]mysql_fetch_object[/phpf]) generiert.

Neben einer Fehlerbehandlung würde sich auch sowas eigenen:
PHP:
$aktuelle_seite = 1; // Standard-Seite

if ( isset($_GET['go']) )
{
  $aktuelle_seite = intval($_GET['go']);
  if ( $aktuelle_seite < 1 || $aktuelle_seite > 999 )
    trigger_error('Fehlerbehandlung...', E_USER_ERROR);
}
 
Zurück