Florian M.: Zeilennummern aus MySQL Datenbank den Einträgen zuordnen

Guten morgen,

ich habe mir ein Gästebuch gebastelt.
Durch SQL-Anweisung lass ich mir die 10 aktuellsten Beiträge ausgeben. Nun möchte ich den Beiträgen die jeweilige Zeilennummer
zuordnen.

Dies war mein erster Ansatz:
...
..
.
$zeilen = 0;
while ($line = mysql_fetch_array($result)) {
$zeilen++
echo $zeilen;
...
..
.
// hiermit erreiche ich lediglich nur, dass bei jeder Ansicht
(ältere Beiträge bzw. aktuelle Beiträge) der Zähler wieder von
vorne beginnt.
(es sind zur Zeit 20 Beiträge in der Datenbank ->
somit sollte der 18 Beitrag auch die 18 zugewiesen bekommen und
nicht die 8.)

Im Voraus schon einmal Danke für eure Hilfe

bis denn
Florian

  1. (es sind zur Zeit 20 Beiträge in der Datenbank ->
    somit sollte der 18 Beitrag auch die 18 zugewiesen bekommen und
    nicht die 8.)......

    hallo

    hast du jedem datensatz eine eindeutige id zugewiesen?
    damit wäre es am einfachsten:
    eine spalte id mit auto_increment welche fortlaufend durchnummeriert. und dann im select nach dieser sortiert:
    SELECT * FROM tableName ORDER BY id DESC;
    damit werden sie rückwärts aufgelistet.

    Gruß

    MO

    1. Hallo MO,

      danke für die Antwort

      hast du jedem datensatz eine eindeutige id zugewiesen?

      ja habe ich

      damit wäre es am einfachsten:
      eine spalte id mit auto_increment welche fortlaufend durchnummeriert. und dann im select nach dieser sortiert:
      SELECT * FROM tableName ORDER BY id DESC;
      damit werden sie rückwärts aufgelistet.

      Ganz so einfach ist das nicht.
      Ich habe zum Beispiel mehrere Datensätze (1 - 10) gelöscht.
      Das Problem dabei ist, dass nachher id nicht wieder von vorne
      anfängt sondern erst ab 11. Somit hat der erste Beitrag die
      Nummer 11. Das kann nicht sein.

      Andere Möglichkeiten

      Gruß
      Florian

      1. » Ganz so einfach ist das nicht.

        Ich habe zum Beispiel mehrere Datensätze (1 - 10) gelöscht.
        Das Problem dabei ist, dass nachher id nicht wieder von vorne
        anfängt sondern erst ab 11. Somit hat der erste Beitrag die
        Nummer 11. Das kann nicht sein....

        Hi Florian

        Oki...dann mach doch mehrere Selects:
        Zuerst auslesen wieviele Datensätze in der DB vorhanden sind:
        $Select = "SELECT count(*) FROM table;";
        $result = mysql_query($Select) or die (mysql_error());
        $row = mysql_fetch_row($result);
        $Gesamt = $row[0];
        Wenn du nun deinen Ansatz nimmst und folgenden Initialisierungswert verwendest, dann stimmt es wieder.

        $Zaehler = $Gesamt - 10 + 1;

        //zehn abziehen, welche du anzeigen lassen willst und einen dazuzählen, da der Zähler sonst bei zehn und nicht bei elf(bei 20 datensätzen) beginnt.

        danach der Select:
        SELECT * FROM table ORDER BY id DESC LIMIT 10;

        damit müsste das gewünschte ergebniss kommen.

        Gruß MO