Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Problem: Reihenfolge der Einträge auf mehreren Seiten

Hi,

Ich programmiere gerade ein Gästebuch und habe folgendes Problem:

Ich möchte die Einträge auf mehrere Seiten aufteilen, das ist mir auch gelungen. Die neuen Einträge sind auf Seite 1 und die alten auf der letzten Seite. Nur: die Einträge jeder Seite sind nicht in der richtigen Reihenfolge (z.B. auf Seite 1 ==> der neuste Beitrag ist unten, der ältere von Seite 1 ist oben). Und das möchte ich ändern, sodass die Reihenfolge komplett richtig ist.

[PHP]
if (isset($_GET['pageno'])) {
$pageno = $_GET['pageno'];
} else {
$pageno = 1;
}

$query = "SELECT count(*) FROM $db_table";
$result = mysql_query($query, $db) or trigger_error("SQL", E_USER_ERROR);
$query_data = mysql_fetch_row($result);
$numrows = $query_data[0];

$rows_per_page = 3;
$lastpage = ceil($numrows/$rows_per_page);

$pageno = (int)$pageno;
if ($pageno < 1) {
$pageno = 1;
} elseif ($pageno > $lastpage) {
$pageno = $lastpage;
}

if (($pageno + $rows_per_page) >= $numrows) {
$rows_per_page = $numrows - $pageno;
}

if (!$pageno || $pageno<0) {
$pageno = 0;
}

$limit = 'LIMIT ' .($pageno - 1) * $rows_per_page .',' .$rows_per_page;

$query = "SELECT * FROM $db_table ORDER BY id DESC $limit";
$result = mysql_query($query, $db) or trigger_error("SQL", E_USER_ERROR);

// hier die Beiträge
[/PHP]

Hier gehts zum Orginal Eintrag "Problem: Reihenfolge der Einträge auf mehreren Seiten" im Forum

Antworten

ist dein "id"-feld in der db auf "auto_increment" ? wie sieht der inhalt der variable "$query" aus z.b. für die erste und zweite seite? das würde bei der lösung vielleicht helfen.


2.

Zitat:
erichth postete
ist dein "id"-feld in der db auf "auto_increment" ? wie sieht der inhalt der variable "$query" aus z.b. für die erste und zweite seite? das würde bei der lösung vielleicht helfen.
Ja, das "id"-Feld in der DB ist auf auto_increment. Ich verstehe jedoch nicht, was du mit dem zweiten Teil deiner Antwort meinst ;) .


3.

ich meine, dass du vor

Zitat:
// hier die Beiträge
schreiben sollst:

Code:                   In Zwischenablage kopieren (nur IE)
1">

dann die erste seite aufrufen, dann zur zweiten seite blättern. und das, was du dann ganz oben in der seite siehst - also der inhalt der variable $query - hier posten. sollte ungefähr so aussehen:
SELECT * FROM ... ;)


4.

Auf der ersten Seite erhalte ich den Text:

Code:                   In Zwischenablage kopieren (nur IE)
2">

Auf der zweiten Seite steht:

Code:                   In Zwischenablage kopieren (nur IE)
3">

Wobei ich noch hinzufügen sollte: Ich habe 5 Beiträge im GB und es sollen 3 Beiträge pro Seite angezeigt werden (nur zur Behebung des Problems ;) )


5.

nichts ungewöhnliches hier. und wie sieht die schleife aus, die die daten ausgibt?


6.

Code:                   In Zwischenablage kopieren (nur IE)
4">

Ich hoffe, ich hab dich richtig verstanden ;)


7.

ist denn

[doc]array_reverse[/doc]

wirklich das, was du willst??? könnte doch vielleicht die "reverse"->umgedrehte reihenfolge erklären...


8.

hmm was sollte ich denn statt "array_reverse" angeben? kenne mich leider mit arrays nicht aus.

gn8 für heute,
nox06


9.

na, pass auf: du nutzt doch schon die SQL-funktionalität, damit dir immer nur 0-3 ergebnisse pro seite geliefert werden. warum zählst du sie hier noch einmal nach?

[quote]
Code:                   In Zwischenablage kopieren (nur IE)
5">

[/quote] du solltest erstens lieber
[doc]mysql_fetch_assoc[/doc]
verwenden, dann kommen die ergebnisse in leicht verwendbare form. dann kannst du mit

Code:                   In Zwischenablage kopieren (nur IE)
6">

darauf zugreifen und dann sind sie auch in der richtigen reihenfolge.


10.

Ich weiß leider nicht so ganz, wie ich das einsetzen soll ;) Ich habe folgendes probiert, hat aber leider nicht funktioniert, ich bekomme die Einträge leer angezeigt:

Code:                   In Zwischenablage kopieren (nur IE)
7">




11.

$row['id'] = $id;
Sorum ist es doch Quatsch.

$id=$row['id']; muss es heißen.


12.

Juhu, es funktioniert! :) Das war auch ein ziemlich dummer Flüchtigkeitsfehler von mir ;) In dem Sinne:

Danke an euch beide,
nox06


Hier gehts zum Orginal Eintrag "Problem: Reihenfolge der Einträge auf mehreren Seiten" im Forum
 
phpforum.de | Impressum