Eintrag eine Spalte ersetzen
Hi,
irgendwie werde ich nicht schlau aus der Replace-Funktion.
Ich habe eine Tabelle mit drei Feldern: text,path,id.
Durch das Formular ist path bekannt und ich möchte text ersetzen. Wie folgt klappt es nicht:
Auch klappt es nicht, wenn ich INSERT nutze (das überschreibt ja nicht). Kann mir jemand meinen Fehler aufzeigen?
Gruß, Toast
irgendwie werde ich nicht schlau aus der Replace-Funktion.
Ich habe eine Tabelle mit drei Feldern: text,path,id.
Durch das Formular ist path bekannt und ich möchte text ersetzen. Wie folgt klappt es nicht:
|
|
MySQL-Abfrage(n) |
1 |
$fill = mysql_query("REPLACE INTO shoots (text) VALUES ('$text') WHERE path='$path'"); |
Auch klappt es nicht, wenn ich INSERT nutze (das überschreibt ja nicht). Kann mir jemand meinen Fehler aufzeigen?
Gruß, Toast
Bei replace brauchst du glaube kein WHERE
Schau mal auf:
http://dev.mysql.com/doc/refman/5.1/de/replace.html
Wenns nicht anders geht einfach UPDATE mit WHERE verbinden
Schau mal auf:
http://dev.mysql.com/doc/refman/5.1/de/replace.html
Wenns nicht anders geht einfach UPDATE mit WHERE verbinden
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »KevinHu« (18. April 2011, 20:11)
Nein bei REPLACE ist das irgentwie komisch (da darf es glaub gar nicht sein o.O ), habe ich auch nie wirklich benutzt deshalb.
Aber UPDATE tuts auch.
Grüße
Kevin
|
|
PHP-Quelltext |
1 2 3 4 |
<?php
UPDATE `tabellen_name`
SET spalte = REPLACE(spalte, 'suche_string','ersetze_string');
?>
|
Aber UPDATE tuts auch.
Grüße
Kevin
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »KevinHu« (18. April 2011, 20:22)
MMhh. Okay, da habe ich aber nun ein Problem...
Und zwar möchte ich ja was ändern. Auf einer Seite wird der aktuelle Inhalt der besagten Zelle ausgelesen und in eine Textarea eingefügt. Hier ändert man nun den Inhalt und klickt auf den Submit-Button. Der veränderte Text wird also übergeben. Wenn ich das Ganze jetzt richtig verstehe, muss ich jedoch wisen (für suche_string) wie der vorhandene String heißt (was ich ja aber nicht weiß). Bei ersetze_string denke ich mal gehört der neue String hin (tabellen_name und spalte ist klar).
Wie gehe ich nun mit diesem Problem um?
Gruß, Toast
Und zwar möchte ich ja was ändern. Auf einer Seite wird der aktuelle Inhalt der besagten Zelle ausgelesen und in eine Textarea eingefügt. Hier ändert man nun den Inhalt und klickt auf den Submit-Button. Der veränderte Text wird also übergeben. Wenn ich das Ganze jetzt richtig verstehe, muss ich jedoch wisen (für suche_string) wie der vorhandene String heißt (was ich ja aber nicht weiß). Bei ersetze_string denke ich mal gehört der neue String hin (tabellen_name und spalte ist klar).
Wie gehe ich nun mit diesem Problem um?
Gruß, Toast
Ich übergebe ja nur den neuen Text per POST. Mir fällt gerade kein Weg ein, wie ich den alten Text noch übergeben könnte, außer das ich ein Formularfeld mache, welches nicht sichtbar ist, wo dann der alte String unverändert bleibt (auf GET verzichte ich hier, da ein Text unbekannter Länge übergeben wird).
Ich versuche es mal so (oder gibt es ne andere Methode für POST?).
Danke schon mal soweit.
Gruß, Toast
EDIT: Mit UPDATE funktioniert es jedenfalls - thx - so benötige ich nicht mal den alten String
Ich versuche es mal so (oder gibt es ne andere Methode für POST?).
Danke schon mal soweit.
Gruß, Toast
EDIT: Mit UPDATE funktioniert es jedenfalls - thx - so benötige ich nicht mal den alten String
Spoiler
![]()
PHP-Quelltext
1$update = mysql_query("UPDATE shoots SET text = '$text' WHERE (path='$path')");
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Toast« (19. April 2011, 09:42)
Replace Funktioniert nur dann wenn du einen eindeutigen Index oder Primärschlüssel vergeben hast!
Ich würde dir zu dem Befehlt Insert raten hier die Referenz dazu LINK
Sorry was vergessen natürlich in verbindung mit
ON DUPLICATE KEY UPDATE
Ich würde dir zu dem Befehlt Insert raten hier die Referenz dazu LINK
Sorry was vergessen natürlich in verbindung mit
ON DUPLICATE KEY UPDATE
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Jadefalke« (19. April 2011, 09:25)
Nein bei REPLACE ist das irgentwie komisch (da darf es glaub gar nicht sein o.O ), habe ich auch nie wirklich benutzt deshalb.
![]()
PHP-Quelltext
1 2 3 4<?php UPDATE `tabellen_name` SET spalte = REPLACE(spalte, 'suche_string','ersetze_string'); ?>
Aber UPDATE tuts auch.
Grüße
Kevin
Allerdimngs aufpassen!
Diese Anweisung ersetzt ALLE Vorkommen von 'such_string' mit 'ersetze_string' in ALLEN Datensätzen!
Ähnliche Themen
-
(X)HTML & CSS & DHTML & Javascript »-
grafikbreite
(14. November 2007, 22:33)
-
Datenbanken »-
MySql: Suchen und ersetzen Problem
(23. Februar 2006, 09:34)
-
PHP »-
was ist mit dem script bitte???
(16. November 2003, 14:15)
-
PHP »-
denkanstoss
(21. April 2003, 17:59)


