Ankündigung

Einklappen
Keine Ankündigung bisher.

SQL Update

Einklappen

Neue Werbung 2019

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

  • SQL Update

    Moin!
    Habe ein kleines Problem mit einem Update. Vielleicht kann mich einer korrigieren?
    Es sollen Nachrichten an den User oder an einer Gruppe gesendet werden.

    Also in der Tabelle sind zusätzlich 3 Spalten:
    Code:
    gid
    Code:
    uid
    Code:
    meldung
    Die gid hat den Wert 101. Diese Nachricht geht an alle ...
    Die uid hat den Wert: Herr A = 100 - Herr B = 200

    Wenn ich jetzt ein Update für Herr B durchführe, macht er in allen Spalten ein Update.
    Also (WHERE uid OR gid) sagt ja eigentlich was ich möchte

    PHP-Code:
    $update $pdo->prepare("UPDATE login SET meldung = :meldung_neu WHERE uid OR gid = $auswahl");
    $update->execute(array('meldung_neu' => $meldung)); 
    HTML-Code:
    <select class="form-select" name="auswahl">
    <option selected>auswahl ...</option>
    <option value="100">Herr A</option>
    <option value="200">Herr B</option>
    <option value="101">Alle</option>
    </select>
    <textarea class="form-control" name="meldung" rows="3"></textarea>

    Vielleicht hat ja jemand eine simple Erklärung!

  • #2
    1. Wieso verwendest du für :meldun_neu einen Parameter, für Auswahl aber nicht? Das ist eine gravierende Sicherheitlücke und macht keinen Sinn.
    2. Jede Condition in einem WHERE muss einen eigenen Vergleich haben, also uid = :selection OR gid = :selection

    Kommentar


    • #3
      wieso ziehst du dir nicht einfach alle meldungen seit dme letzten login ?
      oder versuchst du genau das und ich bhabe es nicht verstanden ?

      Kommentar

      Lädt...
      X