Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

Toast

Tripel-As

Dabei seit: 02.01.2011

Beiträge: 210

 

1 Zum Seitenanfang

Montag, 18. April 2011, 19:57

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:

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
 

KevinHu

Routinier

Dabei seit: 05.09.2010

Beiträge: 265

 

2 Zum Seitenanfang

Montag, 18. April 2011, 20:11

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

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »KevinHu« (18. April 2011, 20:11)

 

Toast

Tripel-As

Dabei seit: 02.01.2011

Beiträge: 210

 

3 Zum Seitenanfang

Montag, 18. April 2011, 20:19

Ja gut, aber selbst wenn, müsste es doch auch mit WHERE gehen... Ich muss ja irgendwie die richtige Zeile definieren.
 

KevinHu

Routinier

Dabei seit: 05.09.2010

Beiträge: 265

 

4 Zum Seitenanfang

Montag, 18. April 2011, 20:22

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

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »KevinHu« (18. April 2011, 20:22)

 

Toast

Tripel-As

Dabei seit: 02.01.2011

Beiträge: 210

 

5 Zum Seitenanfang

Montag, 18. April 2011, 20:30

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
 

KevinHu

Routinier

Dabei seit: 05.09.2010

Beiträge: 265

 

6 Zum Seitenanfang

Dienstag, 19. April 2011, 07:34

Warum weißt du nicht, wie der vorhandene string heißt ?


Grüße
Kevin
 

Toast

Tripel-As

Dabei seit: 02.01.2011

Beiträge: 210

 

7 Zum Seitenanfang

Dienstag, 19. April 2011, 09:17

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

  Spoiler 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)

 

Jadefalke

Routinier

Dabei seit: 29.02.2008

Beiträge: 431

 

8 Zum Seitenanfang

Dienstag, 19. April 2011, 09:25

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

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Jadefalke« (19. April 2011, 09:25)

 

stfschaefer

Routinier

Dabei seit: 21.08.2010

Beiträge: 251

 

9 Zum Seitenanfang

Donnerstag, 28. April 2011, 17:51

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