Daniel: Gästebuch

Hallo zusammen,

ich hab ein Gästebuch mit php geschrieben und das in einer mySQL Datenbank gespeichert wird. Auf meiner Homepage habe ich jetzt die Einträge dargestellt und nach der id sortiert (es wird auch immer angezeigt z.B. 11. Nachricht, also anhand der id). Wenn ich jetzt aber in der Datenbank Einträge lösche (z.B. ich lösche Eintrag 9, dann wird dieser Wert übersprungen und im Gästebuch steht: Eintrag 8 ..., Eintrag 10... Wie kann ich erreichen, dass diese id eifach auf den 10. Eintrag übertragen wird, so dass dieser zum 9. wird?

Mit freundlichen Grüssen

Daniel

  1. Hi Daniel,

    ich hab ein Gästebuch mit php geschrieben und das in einer mySQL Datenbank gespeichert wird. Auf meiner Homepage habe ich jetzt die Einträge dargestellt und nach der id sortiert (es wird auch immer angezeigt z.B. 11. Nachricht, also anhand der id). Wenn ich jetzt aber in der Datenbank Einträge lösche (z.B. ich lösche Eintrag 9, dann wird dieser Wert übersprungen und im Gästebuch steht: Eintrag 8 ..., Eintrag 10... Wie kann ich erreichen, dass diese id eifach auf den 10. Eintrag übertragen wird, so dass dieser zum 9. wird?

    In diesem Fall würde ich sagen, kannst du nicht mit der ID arbeiten. Du wirst wohl oder übel "von Hand" die Zahlen davor schreiben müssen, d.h. wenn du weißt, es sollen ab ID 10 die nächsten 10 Einträge angezeigt werden, fange einfach bei 10 an und zähle jede Ausgabe eins höher.

    Was besseres fällt mir dazu jetzt auch nicht ein - es sei denn, du würdest nach jedem Löschen die IDs für sämtliche Einträge neu vergeben. Das ist aber schlecht, da eine ID ja etwas einmaliges sein soll und wenn ich mir guestbook.php?id=5 bookmarke, will ich da ne Woche später ja immer noch den selben Eintrag sehen.

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:( mo:} zu:| [decode]
    Probleme mit Formularen? http://tutorial.riehle-web.com hilft weiter.
    1. mir schon:

      denke mal es geht um mySQL

      da würd ich beim löschen ein
      "UPDATE tabelle SET id = id - 1 WHERE ID > gelöschter Eintrag"
      ausführen.

      Auch das mit der Schleife vom Vorposter ist eine funktionable Lösung

      Gruß Markus

      1. Hello,

        mir schon:

        denke mal es geht um mySQL

        da würd ich beim löschen ein
        "UPDATE tabelle SET id = id - 1 WHERE ID > gelöschter Eintrag"
        ausführen.

        Interessant ;-)

        Nun würde mich noch interessieren, welchen Spaltentyp ID hat,
        und wie Du die Multiuser-Fähigkeit der DB berücksichtigst.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Hallo Tom,

          Interessant ;-)

          Nun würde mich noch interessieren, welchen Spaltentyp ID hat,...

          vielleicht .jpg oder so ;-)

          Gruß, Andreas

          --
          SELFFORUM - hier werden Sie geholfen,
          auch in Fragen zu richtiges Deutsch
          1. Hello,

            Interessant ;-)

            Nun würde mich noch interessieren, welchen Spaltentyp ID hat,...

            vielleicht .jpg oder so ;-)

            *LOL*

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
      2. Hallo,

        Die ID sollte aber aus schon genannten Gründen nicht geändert werden. Erst Recht, wenn mal andere Tabellen mit Verknüpfungen dazukommen, bekommst Du arge Schwierigkeiten, wenn Du mit sowas anfängst.

        Merke: eine ID heißt ID, weil sie zum ID_entifizieren da ist und nicht als willkürlich veränderbarer Schmuck.

        Gruß, Andreas

        --
        SELFFORUM - hier werden Sie geholfen,
        auch in Fragen zu richtiges Deutsch
  2. Hi Dennis,

    gibst du die Daten in einer for-Schleife aus? Dann könntest du nämlich einfach den entsprechenden Wert ausgeben, statt der ID und damit werden dann deine Einträge ganz normal durchgezählt.

    Viele Grüße
    Ben