Zahl des Eintrags, so wie insgesamt Anzahl der Einträge ausgeben

  • Wie würde ich es am besten einbauen, dass ich folgende Ausgaben bekomme?



    -------------------------------------------------------------
    Überschrift Gästebuch


    Eintrag hinterlassen


    Insgesamt sind xx Einträge hinterlassen worden.


    ----------------
    1 | Name |
    | Eintrag |
    ----------------
    2 | Name2 |
    | Eintrag |
    ----------------
    3 | Name3 |
    | Eintrag3 |
    ----------------------------------------------------------


    Zurzeit ist es ja nur so:


    |Name
    |Eintrag


    |Name
    |Eintrag

  • Das Problem ist, dass manche Einträge ja gelöscht werden.


    Dann sieht das so aus:


    ID 1
    ID 2
    ID 4


    Wenn Beitrag 3 gelöscht wurde.


    Alle Einträge zählen, sollte ja nicht so schwer sein. Aber für jeden Beitrag noch die passende Zahl auszugeben... das gibt mir zu denken.

  • Also 'Einträge insgesamt' müsste ja mit mysql_num_rows($list); funktionieren?


    gbook01.php:

    PHP
    1. $list = mysql_query($query);
    2. $anzahl = mysql_num_rows($list);


    main_top.html:

    PHP
    1. <p>Insgesamt sind <?php echo $anzahl; ?> Einträge hinterlassen worden.</p>
  • Das kommt drauf an was für ein $query verwendet wird.
    Der "normale" Query im Gästebuch ist nämlich normalerweise auf x Einträge (pro Seite) limitiert.
    Das heißt in $anzahl würden dann natürlich auch nur die limitierte Anzahl an Einträgen abgelegt werden.

  • $query = "SELECT * FROM ".$mysql_tables['gb_entry']." WHERE frei = '1' ORDER BY timestamp DESC";


    oder soll ich eine neue query schreiben?


    Edit: Achsooo. Natürlich kann das nicht klappen.
    In 01gbook.php wird zuerst "main_top.html" includet. Und ich habe die Variable erst danach definiert.


    Also habe ich es so gemacht:


    PHP
    1. // Einträge insgesamt
    2. $qi = mysql_query("SELECT * FROM ".$mysql_tables['gb_entry']." WHERE frei = '1'");
    3. $anzahl = mysql_num_rows($qi);
    4. // main_top einfügen
    5. include($tempdir."main_top.html");



    Und wegen dem Rückwärtszählen.
    Mit for bzw. foreach müsste es ja gehen?! Ich habe es nicht mehr im Kopf. Aber irgendwie $i--.

  • Prinzipiell kann eine beliebige Variable natürlich als Zählvariable verwendet werden und dann bei jedem Eintrag über $var--; um 1 dekrementiert werden.
    Es muss aber halt bedacht werden, dass wenn ein Benutzer auf "Seite 2" klickt die entsprechende Anzahl an Einträgen, die bereits auf Seite 1 aufgelistet wurden, abgezogen wird. Und das muss halt so dynamisch programmiert sein, dass es für jede beliebige Seitenzahl funktioniert.