UPDATE - Anweisung mit MySQL
Jens Kreutzmann
- datenbank
Hallo,
also. Kurze Erklärung.
Ich habe eine Datenbank in der Termine gespeichert werden. Es ist auch
möglich diese Termine nachträglich zu bearbeiten. Wenn dies geschehen ist
soll der gearbeitete Termin wieder in der Datenbank gespeichert werden. Aber
nicht als neuer Datensatz, sondern über den bestehenden drüber. Deshalb habe
ich beim eintragen der Termine, gleich eine ID automatisch vergeben lassen.
Nur leider geht es irgendwie nicht. Das er die Dtaen speichert. Sondern er
bringt mir immer folgenden Fehler:
You have an error in your SQL syntax near 'where id
(datum,eventname,beschreibung) values ('2003-01-31','Vernügunsschlacht'' at
line 1
update termine_hassan set where id (datum,eventname,beschreibung) values
('2003-01-31','Vernügunsschlacht','Ort. ehemalige Diskothek Banane in Bad
LiebenwerdaEintritt 3,00? / Jedes Getränk 1,00?')
Quellcoder zur UPDATE - Anweisung:
<title>intern/termine/termine_bearbeiten_speichern.php</title>
</head>
<?
mysql_connect($localhost,$user,$passwort);
mysql_select_db($datenbank);
$query=("update termine_hassan set where id
(datum,eventname,beschreibung)
values
('$_POST[datum]','$_POST[eventname]','$_POST[beschreibung]')
");
mysql_query($query) or die(mysql_error()."<br>".$query);
?>
sollte eigentlich richtig sein so ??? oder ??? hat jemand eine Idee dazu ???
MfG
Jens Kreutzmann
Guten Morgen Jens,
Bei MySQL sieht die UPDATE-Anweisung wie folgt aus:
UPDATE tabelle SET feld1=wert1, feld2=wert2 WHERE id=idnr;
Ich glaube folgende Anweisung geht auch:
UPDATE tabelle SET (feld1, feld2) VALUES (wert1, wert2) WHERE id=idnr;
Wenn Du also deine WHERE-Klausel an das Ende deines Befehls hängst, sollte dein Befehl funktionieren.
greets
myMojito
<title>intern/termine/termine_bearbeiten_speichern.php</title>
</head>
<?
mysql_connect($localhost,$user,$passwort);
mysql_select_db($datenbank);
mysql_query("UPDATE hassan_termine SET datum=datum WHERE id=id");
mysql_query($query) or die(mysql_error()."<br>".$query);
?>
also so hab ich es jetzt gemacht ... nun bringt er folgendes beim Fehler abfangen:
Query was empty
Idee ???
Update für er auch nicht aus ...
MfG
Jens
Hallo Jens,
mysql_query("UPDATE hassan_termine SET datum=datum WHERE id=id");
mysql_query($query) or die(mysql_error()."<br>".$query);
?>
Du fürst mit diesen zwei Zeilen zwei getrennte MySQL-Anweisungen aus! Deine Fehlermeldung bezieht sich auf die zweite Zeile, und die besagt, das deine Variable $query leer ist (was wahrscheinlich ja auch stimmt)!
Die zweite Zeile solltest Du also löschen, und die erste Zeile solltest Du auf Fehler überprüfen (wie in Zeile zwei).
Meine Vermutung geht dahin, dass du anstelle datum=datum datum=$datum schreiben wolltest (ebenso bei id).
Die Fehlermeldungen sollten dich jedoch weiterbringen.
greets
myMojito
hi, jens
du musst schauen, dass du genau arbeitest!
dein folgender sql-befehl sieht so aus:
mysql_query("UPDATE hassan_termine SET datum=datum WHERE id=id");
wenn du sagst datum=datum, dann weist sich mysql das datum das schon in der db drin wieder zu. ich denke das ist nicht in deinem sinne.
so sollt die sql-anweisung funktionieren:
mysql_query("UPDATE hassan_termine SET datum = '{$datum}' WHERE id = {$id}");
1. verlangt die sql-syntax bei strings einfach anführungszeichen.
2. geschiet die zuweisung über eine php variable $datum und $id.
3. und um ganz sicher zu sein das php die vars in der sql-anweisung erkennt, setzt du {} darum.
gruss
LenaLuna
Hallo,
update termine_hassan set where id (datum,eventname,beschreibung) values
('2003-01-31','Vernügunsschlacht','Ort. ehemalige Diskothek Banane in Bad
LiebenwerdaEintritt 3,00? / Jedes Getränk 1,00?')
sollte eigentlich richtig sein so ???
Äh, nein, da muß ich Dich enttäuschen. Gib's zu, daß hast Du so einfach vor Dich hin gereimt, ohne auch nur rienen Blick in die Dokumentation der Datenbank zu werfen (http://www.mysql.com/doc/en/UPDATE.html), oder?
Grüße
Klaus