bei UPDATE nur einen Datensatz ändern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • bei UPDATE nur einen Datensatz ändern

    Hi, noch eine Frage:

    Ich habe ein Message System, welches immer Gesendete und Empfangene Nachrichten doppelt abspeichert.

    -> Damit Sie bei jedem User angezeigt werden und jeder seine Gesendeten/Empfangenen löschen kann...

    Vielleicht versteht jemand was ich meine ;D

    Geht das, das der UPDATE Befehl nur den ersten Datensatz, den er findet ändert ?

    Und nicht alle die zutreffen ?

    Mehr WHERE-Kriterien kann ich nicht angeben.

  • #2
    Re: bei UPDATE nur einen Datensatz ändern

    Original geschrieben von hYpe
    Geht das, das der UPDATE Befehl nur den ersten Datensatz, den er findet ändert ?
    wenn ich nciht irre, gehts mit LIMIT. aber erst ab 4.1

    Original geschrieben von hYpe
    Mehr WHERE-Kriterien kann ich nicht angeben.
    wieso nicht?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Habs jetzt anders hinbekommen ;-)

      Trotzdem danke.

      Auf 4.0.15 hats funktioniert, auf 3.2 nicht.

      Kommentar


      • #4
        Re: bei UPDATE nur einen Datensatz ändern

        Original geschrieben von hYpe
        Ich habe ein Message System, welches immer Gesendete und Empfangene Nachrichten doppelt abspeichert.

        -> Damit Sie bei jedem User angezeigt werden und jeder seine Gesendeten/Empfangenen löschen kann...
        finde ich ungünstig.

        warum komplette nachrichten doppelt ablegen, redundanz schaffen?

        ich würde die nachrichten (titel, text, evtl. anhänge) in eine tabelle packen, dazu eine nachrichten-ID vergeben.

        in einer weiteren tabelle kann dann hinterlegt werden, wer welche nachricht an wen verschickt hat, bzw. wer welche von wem bekommen hat. einer dieser zwei sätze wäre dann zu löschen - welcher, ist leicht rauszufinden, da ja beide eindeutig sind.


        diese tabelle könnte z.b. so aufgebaut sein: ID, userID1, userID2, richtung.

        665 / 4711 / 13 / an hiesse dann, nachricht 665 wurde von user 4711 an user 13 geschickt, und der eintrag
        665 / 13 / 4711 / von bedeutet, dass nachricht 665 an user 13 von user 4711 geschickt wurde.

        wenn dann nach dem löschen des einen satzes auffällt, dass die "andere richtung" auch bereits nicht mehr existiert, könnte ggf. dann noch der korrespondierende eintrag aus der nachrichten-tabelle gelöscht werden.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar

        Lädt...
        X