über SQL farbcode in Produktbeschreibung ändern

Hallo Leute,

bin echt verzweifelt und brauche eure Hilfe.
Habe bei 1und1 einen Server angemietet und darauf einen Gambio Webshop installiert. Mitlerweile sind über 1000 Produkte in dem Shop. Da es letzte Woche nochmals eine Farbänderung gab und in den Produktbeschreibungen Tabellen eingefügt sind mit farbigem Tabellenkopf, bräuchte ich einen SQL Befehl der in der Datenbank XYZ den Farbcode #023170 mit dem Farbcode #800101 ersetzt. Leider konnten die mir von 1und1 da nicht weiterhelfen und ich habe davon leider auch sehr wenig Ahnung. Soweit ich weis geht das über den Updatebefehl doch wie genau der aussehen muss damit er mir auch nicht die ganze Datenbank verschießt, kann ich leider nicht sagen und habe auch im Netzt leider nichts brauchbares gefunden.

Hoffe ihr könnt mir helfen…im voraus vielen Dank

Gruß Mike



test=# select * from farbcodes;
 id |  farbe
----+---------
  1 | #023170
  2 | #023171
  3 | #023172
  4 | #023173
  5 | #023174
(5 rows)

test=*# update farbcodes set farbe = '#800101' where farbe='#023170';
UPDATE 1
test=*# select * from farbcodes;
 id |  farbe
----+---------
  2 | #023171
  3 | #023172
  4 | #023173
  5 | #023174
  1 | #800101
(5 rows)

Mehr ist nach Deinen dürftigen Angaben hier nicht orakelbar…

Andreas

Dann versuch ich es nochmal genauer:

hier gehts zu einer Produktbeschreibung des Shops

Also über den Link kommst du in eine Produktbeschreibung in der du eine Tabelle mit Bluem Kopfteil vorfindest. Dies Produktbeschreibung ist in einer Datenbank gespeichert mit dem Farbcode #023170 (für blau).
Jetzt möchte ich über einen SQL Befehl den Tabbelnkopf von blau in #800101 (rot) ändern.

so schaut die Beschreibung in der SQL Datei aus:

  • elegantes Design
  • schwerer Fuß
  • sehr stabile Ausführung
  • Rostfreier Edelstahl
  • für Hochzeiten
  • für Büffets in der Gastronomie
  • für Warenpräsentation
', '', 'Etagen-Tortenständer Edelstahl', '', 'Etagen-Tortenständer, Edelstahl, elegantes Design, schwerer Fuß, sehr stabile Ausführung, Rostfreier Edelstahl, für Hochzeiten, für Büffets, Gastronomie, für Warenpräsentation, 4 Etagen', '', '2', '', '', ''); insert into products_description (products_id, language_id, products_name, products_description, products_short_description, products_keywords, products_meta_title, products_meta_description, products_meta_keywords, products_url, products_viewed, gm_statusbar, gm_alt_text, gm_url_keywords) values ('280', '2', 'Etagen-Tortenständer \"Treppe links\"', ' .style1 { color: #FFFFFF; background-color: #023170; } .style2 { background-color: #CCCCCC; } Etagen-Tortenständer "Treppe links"
  • sehr stabile Ausführung
  • aus lackiertem Stahl
  • Farbe: weiß
  • für Hochzeiten
  • für Büffets in der Gastronomie
  • für Warenpräsentation
Art. Nr. Etagen Breite (mm) Höhe (mm) Gewicht
146070 5 180, 220, 240, 260, 280 520 6,1 kg
', 'Etagen-Tortenständer "Treppe links"

jetzt möchte ich den Teil den ich per Größe und blau hervorgehoben habe in die Farbe #800101 abändern und das für alle 1000 Produkt gleichzeitig.

Also muss doch in der gesamten Datenbank der Farbcode #023170 in #800101 geändert werden.

Tut mir leid wenn es immer noch ned so verständlich ist aber ich habe davon echt recht wenig Ahnung

Gruß Mike

Zuerst mal steht da nicht, um welche Datenbank es geht. Bist du dir sicher, dass PostgreSQL dahinter steckt?

Und dann würde ich den Hersteller des Shops in die Pflicht nehmen: die Produktbeschreibungen als HTML abzuspeichern ist in der heutigen Zeit schon grenzwertig. Das CSS aber auch noch in das gleiche HTML zu packen ist ein böser Fehler. Wäre das CSS gesondert verfügbar wie sich das gehört, könntest du die Farbe an genau einer Stelle ändern.


Letztendlich läuft das auch wieder darauf hinaus, dass Informationen nicht normalisiert sind. Und schon gibt es Probleme bei einer Änderung …

Einfaches Beispiel:

test=# select * from farbcodes;
 id |                    farbe
----+---------------------------------------------
  1 | bla fasel blub hintergrund=#12345 blub blub
(1 row)

test=*# update farbcodes set farbe = regexp_replace(farbe, 'hintergrund=#12345', 'hintergrund=#98765');
UPDATE 1
test=*# select * from farbcodes;
 id |                    farbe
----+---------------------------------------------
  1 | bla fasel blub hintergrund=#98765 blub blub
(1 row)

Vermutlich hast Du aber eh MySQL und damit vermutlich kein regexp_replace().


Andreas

Full ACK.

Andreas

oh man ist das verwirrend wenn man sich damit nicht auskennt.

Ja es ist eine SQL Datenbank

aber daraus werde ich jetzt ned schlau

test=# select * from farbcodes;
id | farbe
----±--------------------------------------------
1 | bla fasel blub hintergrund=#12345 blub blub
(1 row)

test=# update farbcodes set farbe = regexp_replace(farbe, ‘hintergrund=#12345’, ‘hintergrund=#98765’);
UPDATE 1
test=
# select * from farbcodes;
id | farbe
----±--------------------------------------------
1 | bla fasel blub hintergrund=#98765 blub blub
(1 row)

so nochmal ich

die CSS kann ich auch in die stylsheet.css übernehmen. dafür müsste ich in den Produktbeschreibungen eigentlich nur den teil etnfernen

.style1 { color: #FFFFFF; background-color: #023170; } .style2 { background-color: #CCCCCC; }

das geht doch auch über SQL Befehl.

Solltet ihr noch irgendwelche Informationen brauchen sagt bescheid, aber genau beschreiben damit ich auch weis was ihr braucht :slight_smile:

Gruß Mike

Der Begriff “SQL” entspricht im normalen Leben dem Nachnamen “Lehmann”. Du schaust nun mal im örtlichen Telefonbuch, wie oft es den bei Dir gibt.

aber daraus werde ich jetzt ned schlau

Du hast gefragt und eine Antwort bekommen. Du, mal unter uns: es gibt Leute, die bieten sowas auch als kommerziellen Support an. Und nein, ich nicht.

Andreas

na O.K

dann werde ich die ganezn Änderungen per Hand in der Produktbeschreibung machen und ned über die Datenbank.

trotzdem vielen Dank

Wir drücken Dir die Daumen :wink:

Andreas

Und was machst du das nächste Mal, wenn eine Änderung ansteht?

Du hast die Frage nach der genauen Datenbank immer noch nicht beantworten können. “SQL” ist nur die Sprache, nicht der Name der Software.