Komme nicht weiter (Schleife)
Sp33dy G0nz4l3s
- php
0 Tom0 Sp33dy G0nz4l3s0 Tom
Hi, ich habe versucht für mein Script folgendes zu schreiben:
$step = 5; // Wie viele Einträge gleichzeitig?
$page = mysql_query("SELECT * FROM kommentare WHERE Page=".$seite);
$zeilen = mysql_num_rows($page);
for ($s = 0;$zeilen > $s;$s + $step) {$s;}
$start = $s; // Startwert setzen
$sql2 = "SELECT * FROM kommentare WHERE Page=1 ORDER BY id ASC LIMIT ".$start.",".$step;
Das Problem habe ich mit der for Schleife. Zuerst wird die Anzahl der Zeilen aus der Datenbank geholt. Nun wird mit der Schleife geprüft, ob mehr als 5 Zeilen vorhanden sind.
Ist dies der Fall, wird $s um $step also 5 erhöht. Dies geht immer so weiter bis, $zeilen nicht höher als $s sind.
Ich habe nun 2 Stunden damit verbracht. Es klappt nichts. So wie es jetzt ist lädt die Seite eine Ewigkeit, zeigt dann aber nichts an.
Der Sinn der Schleife soll sein, das immer die letzte Seite mit den letzen 5 Einträgen gezeigt wird.
Ich hoffe mir kann jemand helfen.
Hello,
Der Sinn der Schleife soll sein, das immer die letzte Seite mit den letzen 5 Einträgen gezeigt wird.
Ja, aber ohne Schleife bei der Abfrage.
$sql = "SELECT * FROM kommentare WHERE Page=$page ORDER BY id DESC LIMIT $recs_per_page";
Nach der Abfrage in ein Array übertragen
$_page = array();
while($_rec = mysql_fetch_assoc($res,$con))
{
$_page[] = $_rec;
}
mysql_free_result($res);
dann das Array umdrehen
$_page = array_reverse($_page);
und ausgeben
foreach ($_page as $key => $_rec)
{
ausgabe($_rec); ## must Du Dir selber schreiben. Hast Du wahrscheinlich schon.
}
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Danke Tom! Ich werde es sofort probieren.
Habe noch eine Frage, mache deswegen aber keinen neuen Thread auf:
$step = 5;
$startwert = $i - $step; // Startwert setzen
if ($startwert = -$step) { $startwert = 0; }
$start = $startwert;
Stimmt das so? Vermutlich nicht, denn der Startwert wird immer auf 0 gesetzt auch wenn die Bedingung if ($startwert = -$step) gar nicht erfüllt ist.
Kann mir jemand sagen was ich daran falsch gemacht habe?
Hello,
$step = 5;
$startwert = $i - $step; // Startwert setzen
if ($startwert = -$step) { $startwert = 0; }
---
$start = $startwert;
So, wie Du das Statement schreibst, ist eine Zuweisung, und die ist immer TRUE
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom