Daten aus MySQL-DB auslesen, über Formular ändern und speichern

ja stimmt...aber ich habs mal anders funktioniert wegen den sessions, könnte ja sein, dass es dann geht (siehe beitrag oben)...geht aber auch nicht
 
OK... wenn man sich das mal als einen gesamten string anschaut dann sieht das ja so aus:
Code:
"UPDATE user SET vorname = '$_POST['name']' WHERE vorname='$name'"
Jetzt sieht man den Fehler finde ich ziemlich deutlich... bei '$_POST['name']' benutzt du zwei mal die gleichen anführungszeichen, das kann nicht klappen... mach es lieber einfach so:
Code:
$postname = $_POST['name'];
mysql_query("UPDATE user SET vorname = '$postname' WHERE vorname='$name'");
 
Man beachte, dass sowohl Fabian, als auch ich, den String mit dem Punkt verkettet haben, da gibt es keine Probleme mehr mit den Anführungszeichen und auch Array-Elemente lassen sich auf diese Weise problemlos übergeben.

Gruß hpvw
 
@Fabian:
Funktioniert es denn jetzt?
Wenn nicht, kannst du ja mal schauen welches (boolsche) Ergebnis das myql_query zurückliefert - also so:
PHP:
$result = mysql_query("UPDATE...");
if(!$result) {
  die("SQL-Query nicht erfolgreich.");
}

Und hast du mal vor dem SQL-Statement überprüft, welche Werte deine Variablen $_POST['name'] und $name haben?
 
Außerdem ist die Spalte $_SESSION nicht in einer MySQL Tabelle verfügbar. Deine Tabelle sollte folgenden Aufbau haben:

ID - interger - auto_increment - primary key
Nickname (oder loginname) - varchar - unique
Vorname - varchar
Nachname - varchar
Passwort - varchar (MD5 Hashwert abspeichern)

Dann kannst du mittels dem Update Befehl folgendes machen:
PHP:
"Update tbl.user SET vorname = ".$_GET["vorname"]." WHERE id = ".$_SESSION["userid"].";"

Die Variablen kannst du anpassen wie du willst. So wird es auf jeden Fall funktionieren. Zum testen würde ich mir immer den SQL String mit dem echo-Befehl ausgeben lassen, um zu prüfen, ob die Anweisung richtig ist (unabhängig von der Fehlermeldung, kann ja auch falsch sein ohne das ein Fehler kommt). Das wichtigste ist eh immer, eine saubere Datenbank zu haben, am besten in der 3. NF, dann ist das auch viel leichter mit den SQL-Anweisungen ;)


Gruß Radhad
 
Ceppi hat gesagt.:
Wenn nicht, kannst du ja mal schauen welches (boolsche) Ergebnis das myql_query zurückliefert - also so:
...
Wenn schon, denn schon:
PHP:
$result = mysql_query("UPDATE...") 
    or die("MySQL-Fehler: ".mysql_error());
Gruß hpvw
 
Radhad hat gesagt.:
Außerdem ist die Spalte $_SESSION nicht in einer MySQL Tabelle verfügbar. Deine Tabelle sollte folgenden Aufbau haben:

ID - interger - auto_increment - primary key


Gruß Radhad

Danke. Aber beim anlegen der Spalte id gibts schon probleme, und zwar:

Code:
MySQL meldet:  

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

Daweil hab ich es so gemacht wie beschrieben...

Danke,

Grüße,

Fabi
 

Neue Beiträge

Zurück