zeile in einer mySQL tabelle überschreiben (updaten)
Andreas
- php
hi leute,
bin noch anfänger und habe mir heute nen kleines newsscript zusammen gebastelt. läuft soweit ganz gut nur beim editieren da hängts noch! ich denke mal ihr könnt mir helfen! und zwar habe ich eine news.php in der gibt man die daten an. die news_add.php fügt diese daten dann hinzu:
$timestamp = time();
$news = str_replace("\n","<br>",$news);
$insert = "INSERT INTO ttl_news (title, time, quelle, userform, text)";
$insert .= "VALUES ('$titel', '$timestamp', '$quelle', '$userform', '$news')";
mysql_query($insert);
mit dem ändern der daten habe ich mir das so gedacht:
es gibt eine news_cha.php die das selber formular hat wie die news.php nur das die daten dann schon vorhanden sind, man sie eben nur noch editieren muss! man wird dann zu einer datei geleitet wenn man dieses fomrular abschickt, die news_cha_add.php heist! meine frage ist jetzt wie der obrige code nun aussehen muss, also:
$insert = "INSERT INTO ttl_news (title, quelle, userform, text)";
$insert .= "VALUES ('$titel', '$quelle', '$userform', '$news')";
mysql_query($insert);
man hat mir was mit UPDATE gesagt etc. aber irgendwie hauts nicht hin!!
P.S. hab "time" bewust weg gelassen weil die zeit vom erstellen ja bei behalten werden soll!
lg andreas
Kennst Du ein Tutorial?
Du sollst erst suchen und dann fragen, das ist ein Fachforum und keine "ich habe mir da was gedacht" Plattform.
Es gibt den Befehl update, das einfachste wäre Ihn an Stelle von INSERT zu benutzen.
Und nun marsch ins Bettchen.
TomIRL
Hi,
habe das erste mal dieses Forum benutzt und danke für das freundliche entgegenkommen!
in diesem sinne lg Andreas
Hi,
habe das erste mal dieses Forum benutzt und danke für das freundliche entgegenkommen!
Bitte bitte..
Lesen bildet gucke mal was über der Forumsdatei steht bevor Du ein Posting absendest:
Von allen hier Teilnehmenden werden HTML-Grundkenntnisse erwartet. Es wird erwartet, daß bei Problemen erst einmal in SELFHTML, im Kapitel Forumsarchiv oder in anderen Quellen nach einer Lösung gesucht wird.
Zum Mitmachen im SELFHTML Forum gibt es einige grundsätzliche Verhaltensregeln. Diese Regeln sind in der Seite Forums-FAQ nachzulesen. Es wird erwartet, daß Forumsteilnehmer die Forums-FAQ kennen und die dort genannten Regeln einhalten.
und schon findest Du Lösungen ohne Ende:
http://forum.de.selfhtml.org/archiv/2004/2/72103/#m415184
Oder vielleicht hier?
http://dev.mysql.com/doc/mysql/de/UPDATE.html
Sorry dir fehlen elementare Grundkenntnisse!
Es ist ne ziemlich Zeitverschwendung Dir jeden Mist zu erklären, weil man sich solche Sachen am besten durch selbst ausprobieren anlernt.
Dazu bist du offenbar aber nicht bereit, also wirst Du wohl oder übel eine kostenpflichtigen Support oder eine Schulung besuchen müßen.
TomIRL
$query = " UPDATE ttl_news
SET title = '".$titel."'
WHERE (id= '".$uid."')"
LIMIT 1 ";
$update = mysql_query($query) or die (mysql_error());
nach den daten die ich nun habe, habe ich das zusammen gebastelt aber irgendwie wills net funtzen...
Parse error: parse error, unexpected T_STRING in /home/www/web15/html/talklevel/admin/news_cha_add.php on line 36
Limit 1 ist zeile 36 :-/
Hello,
$query = " UPDATE ttl_news
SET title = '$titel'
WHERE id= '$uid'
LIMIT 1 ";
Wobei $title und $uid vorher ordnungsgemäß escaped oder "kastriert" werden müssen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
$uid = $_GET["uid"];
und $titel kam ja von der news_cha.php
Hello,
$uid = $_GET["uid"];
und $titel kam ja von der news_cha.php
Wie kam denn die Variable?
$uid = intval($_GET["uid"]); ## wenn die uid numerisch ist.
Das kann Dir viel Kummer ersparen --> siehe "SQL-Injection"
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
hi,
$query = " UPDATE ttl_news
SET title = '".$titel."'
WHERE (id= '".$uid."')" <- string abgeschlossen
LIMIT 1 ";
^ text hingeschrieben, ohne string wieder zu "eröffnen".
wer es allerdings nicht schafft, so einem simplen parse error auf die spur zu kommen, bzw. noch probleme mit sowas grundlegendem wie der notation von strings hat - der sollte sich zwei mal überlegen, ob er schon "reif" für mysql ist, oder nicht vielleicht vorher erst noch mal seine PHP-kenntnisse erweitern sollte ...
gruß,
wahsaga
Hello Andreas,
$insert = "INSERT INTO ttl_news (title, quelle, userform, text)";
$insert .= "VALUES ('$titel', '$quelle', '$userform', '$news')";
mysql_query($insert);man hat mir was mit UPDATE gesagt etc. aber irgendwie hauts nicht hin!!
P.S. hab "time" bewust weg gelassen weil die zeit vom erstellen ja bei behalten werden soll!
Bei MySQL wird die erste Spalte vom Typ Timestamp bei einem Update automatisch auf now() gesetzt, wenn man keinen Wert (gleichbedeutend NULL) angibt.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
hi,
P.S. hab "time" bewust weg gelassen weil die zeit vom erstellen ja bei behalten werden soll!
Bei MySQL wird die erste Spalte vom Typ Timestamp bei einem Update automatisch auf now() gesetzt, wenn man keinen Wert (gleichbedeutend NULL) angibt.
wenn er aber vorher schreibt
$timestamp = time();
und das dann auch so in seine tabelle einträgt, hat er vermutlich kein TIMESTAMP-feld - oder er müsste mit lustigen ergebnissen rechnen ;-)
gruß,
wahsaga
Hello,
P.S. hab "time" bewust weg gelassen weil die zeit vom erstellen ja bei behalten werden soll!
Bei MySQL wird die erste Spalte vom Typ Timestamp bei einem Update automatisch auf now() gesetzt, wenn man keinen Wert (gleichbedeutend NULL) angibt.
wenn er aber vorher schreibt
$timestamp = time();
und das dann auch so in seine tabelle einträgt, hat er vermutlich kein TIMESTAMP-feld - oder er müsste mit lustigen ergebnissen rechnen ;-)
Jau, das ist zu erwarten.
Timestamp() in PHP ist eben nicht gleich dem Typ Timestamp in MySQL. Ich bin am Anfang aber auch drauf reingefallen und wenn ich dann nicht ziemlich bald dieses MySQL-Front gefunden hätte, wäre ich wohl auch noch lange im Kreis gelaufen. Aber das Tool hat mir beim SQL-Auffrischen erheblich geholfen. Man musss sich eben einfach nur immer anschauen, was für ein Statement generiert wurde. Und dann kann man auch irgendwann wieder auf die Konsole wechslen, ohne dauernd ins Buch (Manual) schauen muss.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
hi,
Timestamp() in PHP ist eben nicht gleich dem Typ Timestamp in MySQL.
wobei wir noch erwähnen wollen, dass sich letzterer in einer mysql-DB eigentlich immer besser macht - aufwendigere datumsoperationen/-berechnungen sind damit mit den von mysql bereitgestellten funktionen besser zu machen (ohne dass man einen unix-timestamp erst dynamisch wandeln müsste).
gruß,
wahsaga