Hallo zusammen,
ich bin dabei eine Bücherdatenbank aufzubauen.
Nun lasse ich mir die Informatioenn über die Bücher bei amazon.de als XML ausgeben. Die Inhalt der XML-Datei kann ich auch schon in die DB einlesen lassen. Leider entstehen dann bei mir diese Zeichen:
ü, ö, ä, usw.
Ich weiß, dass alles UTF-8 sein muss. Die DB ist UTF-8 und auch die HTML Ausgabeseite ist UTF-8. Ich weiß auch, dass die XML-Seite leider ISO-8859-1 ist. Beim Einlesen in die DB entstehen nun diese falschen Zeichen - in der XML-Dateien stehen diese im Plaintext richtig als UTF-8.
Nun habe ich mir gedacht, dass ich ein PHP-Script machen könnte, das nach manuellem aufruf die Zeichen ersetzt (also in ä ,ö, ü, ß usw.).
Dazu habe ich schon mal den SQL-Befehl, der auch funktioniert:
UPDATE tx_ndlibrary_books SET title = REPLACE(title, ‚ß‘, ‚ß‘) WHERE title LIKE ‚%ß%‘;
UPDATE tx_ndlibrary_books SET title = REPLACE(title, ‚´‘, ‚‘) WHERE title LIKE ‚%´%‘;
UPDATE tx_ndlibrary_books SET title = REPLACE(title, ‚ä‘, ‚ä‘) WHERE title LIKE ‚%ä%‘;
UPDATE tx_ndlibrary_books SET title = REPLACE(title, ‚ö‘, ‚ö‘) WHERE title LIKE ‚%ö%‘;
UPDATE tx_ndlibrary_books SET title = REPLACE(title, ‚ü‘, ‚ü‘) WHERE title LIKE ‚%ü%‘;
UPDATE tx_ndlibrary_books SET title = REPLACE(title, ‚Ä‘, ‚Ä‘) WHERE title LIKE ‚%Ä%‘;
UPDATE tx_ndlibrary_books SET author = REPLACE(author, ‚ß‘, ‚ß‘) WHERE author LIKE ‚%ß%‘;
UPDATE tx_ndlibrary_books SET author = REPLACE(author, ‚´‘, ‚‘) WHERE author LIKE ‚%´%‘;
UPDATE tx_ndlibrary_books SET author = REPLACE(author, ‚ä‘, ‚ä‘) WHERE author LIKE ‚%ä%‘;
UPDATE tx_ndlibrary_books SET author = REPLACE(author, ‚ö‘, ‚ö‘) WHERE author LIKE ‚%ö%‘;
UPDATE tx_ndlibrary_books SET author = REPLACE(author, ‚ü‘, ‚ü‘) WHERE author LIKE ‚%ü%‘;
UPDATE tx_ndlibrary_books SET author = REPLACE(author, ‚Ä‘, ‚Ä‘) WHERE author LIKE ‚%Ä%‘;
UPDATE tx_ndlibrary_books SET manufacturer = REPLACE(manufacturer, ‚ß‘, ‚ß‘) WHERE manufacturer LIKE ‚%ß%‘;
UPDATE tx_ndlibrary_books SET manufacturer = REPLACE(manufacturer, ‚´‘, ‚‘) WHERE manufacturer LIKE ‚%´%‘;
UPDATE tx_ndlibrary_books SET manufacturer = REPLACE(manufacturer, ‚ä‘, ‚ä‘) WHERE manufacturer LIKE ‚%ä%‘;
UPDATE tx_ndlibrary_books SET manufacturer = REPLACE(manufacturer, ‚ö‘, ‚ö‘) WHERE manufacturer LIKE ‚%ö%‘;
UPDATE tx_ndlibrary_books SET manufacturer = REPLACE(manufacturer, ‚ü‘, ‚ü‘) WHERE manufacturer LIKE ‚%ü%‘;
UPDATE tx_ndlibrary_books SET manufacturer = REPLACE(manufacturer, ‚Ä‘, ‚Ä‘) WHERE manufacturer LIKE ‚%Ä%‘;
UPDATE tx_ndlibrary_books SET review = REPLACE(review, ‚ß‘, ‚ß‘) WHERE review LIKE ‚%ß%‘;
UPDATE tx_ndlibrary_books SET review = REPLACE(review, ‚´‘, ‚‘) WHERE review LIKE ‚%´%‘;
UPDATE tx_ndlibrary_books SET review = REPLACE(review, ‚ä‘, ‚ä‘) WHERE review LIKE ‚%ä%‘;
UPDATE tx_ndlibrary_books SET review = REPLACE(review, ‚ö‘, ‚ö‘) WHERE review LIKE ‚%ö%‘;
UPDATE tx_ndlibrary_books SET review = REPLACE(review, ‚ü‘, ‚ü‘) WHERE review LIKE ‚%ü%‘;
UPDATE tx_ndlibrary_books SET review = REPLACE(review, ‚Ä‘, ‚Ä‘) WHERE review LIKE ‚%Ä%‘;
Da ich das nu in PHPmyAdmin ausführen kann, wollte ich es in eine PHP-Datei einarbeiten.
Mein Ansatz:
**mysql_connect(„localhost“, „root“, „“);
mysql_select_db(„db1“);
$befehl0 = „UPDATE tx_ndlibrary_books SET title = REPLACE(title, ‚ß‘, ‚ß‘) WHERE title LIKE ‚%ß%‘“;
$befehl1 = „UPDATE tx_ndlibrary_books SET title = REPLACE(title, ‚´‘, ‚‘) WHERE title LIKE ‚%´%‘“;
$befehl2 = „UPDATE tx_ndlibrary_books SET title = REPLACE(title, ‚ä‘, ‚ä‘) WHERE title LIKE ‚%ä%‘“;
$befehl3 = „UPDATE tx_ndlibrary_books SET title = REPLACE(title, ‚ö‘, ‚ö‘) WHERE title LIKE ‚%ö%‘“;
$befehl4 = „UPDATE tx_ndlibrary_books SET title = REPLACE(title, ‚ü‘, ‚ü‘) WHERE title LIKE ‚%ü%‘“;
$befehl5 = „UPDATE tx_ndlibrary_books SET title = REPLACE(title, ‚Ä‘, ‚Ä‘) WHERE title LIKE ‚%Ä%‘“;
$befehl6 = „UPDATE tx_ndlibrary_books SET author = REPLACE(author, ‚ß‘, ‚ß‘) WHERE author LIKE ‚%ß%‘“;
$befehl7 = „UPDATE tx_ndlibrary_books SET author = REPLACE(author, ‚´‘, ‚‘) WHERE author LIKE ‚%´%‘“;
$befehl8 = „UPDATE tx_ndlibrary_books SET author = REPLACE(author, ‚ä‘, ‚ä‘) WHERE author LIKE ‚%ä%‘“;
$befehl9 = „UPDATE tx_ndlibrary_books SET author = REPLACE(author, ‚ö‘, ‚ö‘) WHERE author LIKE ‚%ö%‘“;
$befehl10 = „UPDATE tx_ndlibrary_books SET author = REPLACE(author, ‚ü‘, ‚ü‘) WHERE author LIKE ‚%ü%‘“;
$befehl11 = „UPDATE tx_ndlibrary_books SET author = REPLACE(author, ‚Ä‘, ‚Ä‘) WHERE author LIKE ‚%Ä%‘“;
$befehl12 = „UPDATE tx_ndlibrary_books SET manufacturer = REPLACE(manufacturer, ‚ß‘, ‚ß‘) WHERE manufacturer LIKE ‚%ß%‘“;
$befehl13 = „UPDATE tx_ndlibrary_books SET manufacturer = REPLACE(manufacturer, ‚´‘, ‚‘) WHERE manufacturer LIKE ‚%´%‘“;
$befehl14 = „UPDATE tx_ndlibrary_books SET manufacturer = REPLACE(manufacturer, ‚ä‘, ‚ä‘) WHERE manufacturer LIKE ‚%ä%‘“;
$befehl15 = „UPDATE tx_ndlibrary_books SET manufacturer = REPLACE(manufacturer, ‚ö‘, ‚ö‘) WHERE manufacturer LIKE ‚%ö%‘“;
$befehl16 = „UPDATE tx_ndlibrary_books SET manufacturer = REPLACE(manufacturer, ‚ü‘, ‚ü‘) WHERE manufacturer LIKE ‚%ü%‘“;
$befehl17 = „UPDATE tx_ndlibrary_books SET manufacturer = REPLACE(manufacturer, ‚Ä‘, ‚Ä‘) WHERE manufacturer LIKE ‚%Ä%‘“;
$befehl18 = „UPDATE tx_ndlibrary_books SET review = REPLACE(review, ‚ß‘, ‚ß‘) WHERE review LIKE ‚%ß%‘“;
$befehl19 = „UPDATE tx_ndlibrary_books SET review = REPLACE(review, ‚´‘, ‚‘) WHERE review LIKE ‚%´%‘“;
$befehl20 = „UPDATE tx_ndlibrary_books SET review = REPLACE(review, ‚ä‘, ‚ä‘) WHERE review LIKE ‚%ä%‘“;
$befehl21 = „UPDATE tx_ndlibrary_books SET review = REPLACE(review, ‚ö‘, ‚ö‘) WHERE review LIKE ‚%ö%‘“;
$befehl22 = „UPDATE tx_ndlibrary_books SET review = REPLACE(review, ‚ü‘, ‚ü‘) WHERE review LIKE ‚%ü%‘“;
$befehl23 = „UPDATE tx_ndlibrary_books SET review = REPLACE(review, ‚Ä‘, ‚Ä‘) WHERE review LIKE ‚%Ä%‘“;
$i = mysql_query($befehl0);
$i = mysql_query($befehl1);
$i = mysql_query($befehl2);
$i = mysql_query($befehl3);
$i = mysql_query($befehl4);
$i = mysql_query($befehl5);
$i = mysql_query($befehl6);
$i = mysql_query($befehl7);
$i = mysql_query($befehl8);
$i = mysql_query($befehl9);
$i = mysql_query($befehl10);
$i = mysql_query($befehl11);
$i = mysql_query($befehl12);
$i = mysql_query($befehl13);
$i = mysql_query($befehl14);
$i = mysql_query($befehl15);
$i = mysql_query($befehl16);
$i = mysql_query($befehl17);
$i = mysql_query($befehl18);
$i = mysql_query($befehl19);
$i = mysql_query($befehl20);
$i = mysql_query($befehl21);
$i = mysql_query($befehl22);
$i = mysql_query($befehl23);
mysql_error();**
Ich weiß, dass ich pro mysql_query() nur einen SQL-Befehl haben darf.
Ich habe aber mit UPDATE tx_ndlibrary_books SET author = REPLACE(author, ‚ß‘, ‚ß‘) WHERE author LIKE ‚%ß%‘ immer zwei, oder sehe ich das falsch?
Wie wird das richtig gemacht?
Desweiteren habe ich Hindernisse mit dem LIKE … : Die Zeichen werden wohl mit PHP nicht akzeptiert. Muss ich hier andere Zeichen nehmen?
Ich hoffe, ihr könnt mir weiterhelfen.
LG
Sandra
PS:
MySQL 5
PHP 5