[PHP/MySQL]Update



  • Hab bei meinem Forum ein Skript, das das Profil vom User ändern soll. Aber die Werte werden nicht in die Datenbank eingetragen, wenn ich die Werte auslesen lasse, dann zeigt der mir die aber so an... hier mal der Code, vielleicht kann mir ja jemand helfen:

    <?php
     session_start();
     $db = mysql_connect();
     $sql="SELECT name, mail, site, signatur, avatar FROM user WHERE id='$id'";
     $res=mysql_query($sql, $db);
     print ("<a href=forum.php>Forum</a> ::|:: <a href=logout.php>Logout</a> ::|:: <a href=member.php>Member</a> ::|:: <a href=profil.php>Profil</a> </td></tr><tr><td>");
     $reg = mysql_fetch_row($res);
     if($reg[0] == $name)
     {
      print ("Der Benutzername existiert schon!<br><br><a href=profil.php>Zurück</a>");
     }
     else
     {
      if($name == "")
      {
       $name = $reg[0];
      }
      if($mail == "")
      {
       $mail = $reg[1];
      }
      $sql1="UPDATE user (name, mail, site, signatur, avatar) VALUES ('$name', '$mail', '$site', '$signatur', '$avatar')";
      mysql_query($sql1, $db);
      mysql_error();
      print ("Profil geändert! <br><br> <a href=forum.php>Zum Forum</a>");
     }
    ?>
    


  • dein SQL-Update-Syntax sieht etwas komisch aus 🙄 - außerdem sollte da noch irgendeine WHERE Bedingung kommen (du willst doch nicht alle Datensätze ändern, oder etwa doch 😕

    UPDATE user SET name = '$name', mail = '$mail', site = '$site', signatur = '$signatur', avatar = '$avatar' WHERE irgendwas
    


  • doch, die Werte werden vorher bei einem <Form method="post"> übergeben und in den Input-Feldern ist z.b. avatar aus der Datenbank als value angegeben, d.h. wird da nix verändert, so wird halt der Standard übernommen 😉 thx für die Hilfe



  • Du solltest $_POST['name'] usw. verwenden - ist (zukunfsts)sicherer 😉
    Klappt es denn jetzt? (btw: ich hatte doch gar nichts zu den Variablen gesagt 😕 )



  • du willst doch nicht alle Datensätze ändern, oder etwa doch

    Dachte, dass du die Variablen meinst, Denkfehler meinerseits 😉
    das funzt jetzt super, thx


Anmelden zum Antworten