Bestimmte Daten in der Datenbank ändern

  • Hallo foru-hilfe.de

    Ich stehe gerade auf dem Schlauch.
    Ich habe ein Login, sowie die Registration mittels PHP realisiert. Nun möchte ich den Usern die möglichkeit geben, ihre Einstellungen auch wieder zu änder.
    Dies mittels einem Formuarfeld, das mit einer Tabelle aufgebaut ist

    Sobald ein Feld ausgefüllt ist und auf senden gedrückt wurde, sollen die Daten in der Datenbank geändert werden.
    Dies möchte ich so verwirklichen:

    PHP
    $query= "Update `benutzerdaten` set `nickname` = '$postBenutzername', `Nachname` = '$postNachname', `Vorname` = '$postVorname', `mail` = '$postMail' WHERE `id` = '$userid' ";					
    										mysql_query($query)
    										or die ("MySQL-Error: " . mysql_error());

    Wie soll ich das verwirklichen? Mittels If? zb.

    PHP
    $query ="Update `benutzerdaten` set" if($postBenutzername!=0){`nickname`='$postBenutzername'}


    Doch dies funktioniert nicht so richtig..

  • Eine simple Möglichkeit:

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Vielen Dank!!
    Es funktioniert...
    Nur wid bei der Name, etc. bei jedem Benutzer geändert.
    Es müsste also noch stehen "WHERE id='$userid' "
    Leider kenne ich diese "Funktion" nicht und weiss nicht, wie ich das einbinden soll

  • Was denn für eine "Funktion"?
    Du musst halt einfach an $query noch das " WHERE id={$userid}" anhängen. String-Verknüpfung wirst du doch hinkriegen.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Einfach noch an $query dranhängen, wo ist dein Problem???

    PHP
    if( count($setFields) ) {
      $query = "UPDATE `benutzerdaten` SET ".implode(",",$setFields) . " WHERE id='$userid'";
      echo $query;
    }
  • Sry, wusste nicht, dass man das einfach durch ein . dranhängen kann, bzw. das wusste gar nicht, das PHP das kann..
    Vielen Dank euch beiden.

  • Sry, wusste nicht, dass man das einfach durch ein . dranhängen kann, bzw. das wusste gar nicht, das PHP das kann..


    Mit anderen Worten:

    PHP
    or die ("MySQL-Error: " . mysql_error());


    kopiert ohne den Sinn verstanden zu haben, oder?

  • Wenn du den Code von SinnlosS meinst, den habe ich nicht verstanden.
    Deinen Code darauf schon...
    Den MySQL-Error habe ich schon drin...

    Nun stehe ich vor dem Problem, dass die Änderungen wirksam werden, die Session aber immer noch die "alten, unveränderten" Daten hat.
    Lässt sich das anders regeln, als mit dem Beenden der Session? Also ohne dass sich der User neu einloggen muss?

  • PS: mir ist der Punkt beim MySQL-Error gar nie aufgefallen, das hat mir mal ein Freund gezeigt und anschliessend habe ich das soweit kopiert, genau.