UPDATE funktioniert nicht

stega

Erfahrenes Mitglied
Hi!
Ihr habt mir hier schon paamal geholfen, jetzt hab ich wieder ein Problem, habs nicht in der Suchfunktion gefunden, deshalb jetzt ein neues Thema:
Ich möchte meinen registrierten Homepagenutzern die Möglichkeit geben, ihren Username und ihr Passwort, sowie die Mailadresse zu ändern, nachdem sie sich schon registriert haben.
Mein Script sieht so aus:

PHP:
<?
$connectionid = mysql_connect ("XXX", "XXX", "XXX");
if (!mysql_select_db ("XXX", $connectionid))
{
  die ("Keine Verbindung zur Datenbank");
}
##### ####
# anzeigen
#########

$query = " SELECT user, pw, mail FROM user WHERE user = '".$_SESSION["user_user"]."'";
$result = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($result) == 0) {
die ("<b><font color=red>Keine Daten in der Datenbank!</font></b>");
exit;
}
else {
$data = mysql_fetch_array($result);
}
?>

#### ausgeben#####

Deine Daten:<br>
<hr><br>
Username: <? echo $data["user"]; ?><br>
Passwort: <? echo $data["pw"]; ?><br>
Mail: <? echo $data["mail"]; ?><br>
<hr><br>
Daten ändern:
<form method="post" action="daten.php?go=change">
neuer Name: <input type="text" name="user" value="<? $data["user"] ?>"><br>
neues Passwort: <input type="text" name="pw" value="<? $data["pw"] ?>"><br>
Mailadresse ändern: <input type="text" name="mail" value="<? $data["mail"] ?>"><br>
<input type="submit"></form>

#### Daten in DB ändern #####

<?
switch ($go) {
case "change" :

#### user ändern ### 
if ($user != $data["user"] && $user != "") {
 $query = "UPDATE user SET user = '$user' WHERE user = '".$_SESSION["user_id"]."'";
 $name = mysql_query($query) or die(mysql_error());
 print "Username wurde verändert! Ab sofort kannst du dich mit dem Namen: <b>".$user." </b>anmelden.<br>";
 }

### passwort ändern ###
if ($pw != $data["pw"] && $pw != "") {
 $query2 = "UPDATE user SET pw = '$pw' WHERE user = '".$_SESSION["user_id"]."'";
 $pw = mysql_query($query2) or die(mysql_error());
  print "Passwort wurde verändert! Ab sofort kannst du dich mit dem Passwort: <b>".$pw." </b>anmelden.<br>";
 }

#####mail ändern#####
if ($mail != $data["mail"] && $mail != "") {
 $query3 = "UPDATE user SET mail = '$mail' WHERE user = '".$_SESSION["user_id"]."'";
 $mail = mysql_query($query3) or die(mysql_error());
  print "Mailadresse wurde verändert! Deine Mailadresse lautet nun: <b>".$mail." </b>.<br>";
  }
else {
if ($user =="" && $pw == "" && $mail =="") {
print "es wurde nichts verändert!";
}
}
}
?>
Leider tut sich nichts.... Er gibt mir immer aus, dass ich was geändert habe, in der Db wurde aber nichts verändert.... einen Error bringt er auch nicht...
Was ist falsch?

Danke schonmal für eure Hilfe
lg
stega
 
Ich weiß zwar nicht wo der Fehler liegt, aber versuch doch mal via "print $query;" zu schauen, ob überhaupt alle Daten richtig an die Datenbank übergeben werden.
So versuche ich immer meine Fehler einzugränzen, in dem ich mit print schaue, wie weit ich komme und ob alles stimmt.

redlama
 
jetzt klappts.... war ein logischer fehler drin:
bei der WHERE user= ... muss hin WHERE id= ... sonst sucht er nämlich den Username mit der id-Nummer und den gibts gar nicht...

stega
 

Neue Beiträge

Zurück