Mysql UPDATE
Thomas Dietrich
- datenbank
0 Philipp0 Christian H.
Hallo,
kann man in einer bestimmten zeile einer angelegten Tabelle EIN bestimmtes Feld "ändern" (update, replace). wenn ja wie geht das...kann man irgendwie in dem update befehl sagen dass er das Feld in spalte 2 in zeile 5 ändert? (man könnte doch irgendwie durch die id in die bestimmte zeile gelangen und dann dort das gewünschte feld änder können...)...mit where hatte ich kein erfolg...ich weiss allerdings auch nicht wie das dann genau aussehen muss.
vielen dank und grüsse Thomas!
Hallo
Probiers mal so... ich programmier da zwar immer an ner ganz eigenen SQL-Syntax rum, aber vielleicht hilft dir die auch...
!#UPDATEBLOCK(name des blocks);
!#SET(feldname=inhalt);
!#WHERE(feldname=alter inhalt);
!#ENDUPDATEBLOCK;
... hoffe das hilft dir...
MFG Philipp
Hallo Thomas,
kann man in einer bestimmten zeile einer angelegten Tabelle EIN bestimmtes Feld "ändern" (update, replace). wenn ja wie geht das...kann man irgendwie in dem update befehl sagen dass er das Feld in spalte 2 in zeile 5 ändert? (man könnte doch irgendwie durch die id in die bestimmte zeile gelangen und dann dort das gewünschte feld änder können...)...mit where hatte ich kein erfolg...ich weiss allerdings auch nicht wie das dann genau aussehen muss.
Du hast da etwas falsch verstanden. Auch wenn man von Tabellen redet so darf man sich die Sache nicht vorstellen wie in Excel oder einer HTML Tabelle. Viel mehr muß man sich vorstellen das man eine Menge hat, die von sich aus nicht geordnet ist. Auch wen es in der Praxis selten so ist, kann es ohne weiteres sein, das die gliche Abfrage eine Tabelle, die Daten in unterschiedlicher Reihenfolge wieder gibt. Man sollte unbedingt das Bild im Kopf von einer geordneten Tabelle loswerden um mit Datenbanken effektiv arbeiten zu können.
Natürlich brauch man aber die Daten bei der Ausgabe in eine geordneten Form. Deshalb bietet auch jedes dbs eine Möglichkeit die Daten zu sortieren. Dazu kann man eine vorhandene Spalte verwenden oder man fügt eine Spalte hinzu nach der man sortieren kann.
Der allgemein Syntax zum sortierten ist:
SELECT .... ORDER BY
Mit limit kannst du nun dir Zeile auswählen die du brauchst.
Die so ausgelesene ID kannst du dann für dein update benutzten.
Was die Spalte angeht so solltest du schon ihren Namen kennen.
http://www.mysql.com/doc/de/UPDATE.html
Gruß
Christian
ok danke...nach studieren der definiton von update bin ich trotzdem zu keinem ergebnis gekommen;
$insert = "UPDATE tabelle SET spaltenname=NEUERINHALT";
mysql_connect($host, $username, $password);
mysql_select_db("$dbname");
mysql_query($insert);
nichtmal dieser code geht in dem ich noch nichtmal auf eine einzelne zeile zugehe...
gruss Thomas
Oi,
$insert = "UPDATE tabelle SET spaltenname=NEUERINHALT";
nichtmal dieser code geht
dieser Code geht, wenn Du das gemeint hast:
$insert = "UPDATE tabelle SET spaltenname='NEUERINHALT'";
in eleganter Weiser ersetzt Du damit den Inhalt der Spalte spaltenname aller DS mit dem Literal 'NEUERINHALT'. Oder ist NEUERINHALT eine PHP-Variable? Dann mußt Du das bei der Formulierung des Updates kenntlich machen.
Falls Du möchtest, daß der Wert nicht bei allen, sondern nur bei einem bestimmten DS ersetzt wird, dann fehlt Deinem Statement die entsprechende Klausel:
UPDATE tabelle
SET spaltenname='NEUERINHALT'
WHERE id = 5
Im Beispiel enthält die Tabelle tabelle eine primärindizierte Spalte id, die jeden DS eindeutig kennzeichnet.
HTH Robert