PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : deutsch-ungarische Datenbank und PHP



Torsten.E
05-04-2004, 12:07
Wir müssen ein Projekt mehrsprachig
programmieren PHP + mySQL

Naja Englisch währe nicht so schlimm, aber
ungarisch. Das Problem ist nicht die Übersetzung
sondern die Darstellung der Zeichen (anderer Zeichensatz) und das speichern
der Daten in der gleichen Datenbank wir z.B. deutsche Daten.

Hat da jemand einen Tip, was alles beachtet
werden muß.

Danke

Torsten

Hans-Georg Normann
06-04-2004, 20:19
Ja, verwende als Zeichensatz UTF-8

Hans

Torsten.E
07-04-2004, 08:57
Muß ich da für die Datenbank etwas ändern,
oder muß ich nur die WEB-Seite auf UTF-8 einstellen ?

Ich habe mit Zeichensätzen bisher noch nicht
viel am Hut gehabt.

Grüße

T.Egeler

Gaert
07-04-2004, 15:16
Hallo,

die Tabellen, welche UTF8 Charset enthalten sollen einfach mit


ALTER TABLE tabelle CHARACTER SET UTF8

bearbeiten und testen... sollte eigentlich funktionieren.

Gruß,

Gaert

Torsten.E
07-04-2004, 15:22
Mit

ALTER TABLE tabelle CHARACTER SET UTF8

die Tabellen einstellen. Danach aber zusätzlich
alle Seiten wie folgt anzeigen, oder:

<html LANG="hu">
<head>
<META http-equiv="content-type" content="text/html; charset=ISO-8559-2">
<title>Ungarn</title>
</head>
<body>
<form action="......." method="post">
<input type="Text" name="eingabe" size="20" maxlength="20" value=""></input> <input type="Submit" name="ok" value="123">
</form>
</body>
</html>

Und dann klappt es ????

Torsten.E

Gaert
07-04-2004, 15:26
So würde ich es machen, kann aber nicht testen obs funktioniert - schließlich kann ich kein Ungarisch ;)

Torsten.E
07-04-2004, 15:28
Ich muß ja nur das PHP-Teil programmieren zum Erfassen der Daten.

Zum Glück ein Japanisch, sonst müßte ich so "häuschen" und "türmchen"-Zeichen speichern, das stell ich mir noch viel schwieriger vor.

Gaert
07-04-2004, 15:35
Ehrlich gesagt sind die "Häuschen" und "Türmchen" auch in unicode, sprich UTF8 mit drin... du machst also mit Japanisch genau das gleiche!

Guckst du hier:
http://www.mysql.com/doc/en/Charset-Unicode.html

Torsten.E
07-04-2004, 17:40
Den Zeichensatz zu ändern mit

ALTER TABLE adressen CHARACTER SET utf8


geht leider nicht :-(

Syntax Error ?

Gaert
08-04-2004, 08:30
Dann hast du eine 3er MySQL Version.

Installiere dir eine stabile >= 4.0 und alles ist geritzt.

undefined
08-04-2004, 10:44
Du kannst unter PHP mit utf8_encode bzw. utf8_decode in die datenbank schreiben.
Bei deinem HTML Header must du bei der Ausgabe auch UTF-8 verwenden. Damit die Browser es auch richtig darstellen.
Im Kopf vor der Ausgabe!!

<?php
header("Content-Type: text/html; charset=UTF-8");
?>

In der Meta angabe natürlich auch auf UTF-8 stellen.
Aber lasse dir von vornherein gesagt sein, du wirst immer wieder Zeichensatz Darstellungsprobleme bei GET und POST bekommen. Mit UTF-8 Webformulare zu erstellen ist nicht lustig.

Torsten.E
08-04-2004, 11:12
Kannst Du mir vielleicht sagen, welche Probleme da auf mich
zukommen werden ?

Danke

Torsten.E


PS: Die Eingabe der Datei wir nur von Ungarn aus erfolgen, also sind die IE auch auf ungarisch eingestellt, wenn Du das vielleicht meintest.

Torsten.E
08-04-2004, 11:40
Und wie mach ich so ein Update ?

Ich habe 3.2x unter Suse 8.1 am laufen.
Wenn ich rpm -U MySQL......rpm aufrufe, meckert er dass er Konflikte mit der alten Version hat.

Ich will ja die Daten der "alten" Version behalten, also einfach die alte deinstallieren ???

Torsten.E

Gaert
08-04-2004, 13:34
Hallo,

ich denke nicht, dass du das Charset im HTML Header verändern mußt, eine Anpassung im HTML sollte ausreichen.
Probleme mit GET und POST kann ich mir keine Vorstellen ehrlich gesagt... :confused:

Zum Versionsupdate:
Ich würde es so machen - zuerst ein vollständiger Dump mit mysqldump in eine Datei, dann das 3er RPM runterschmeißen und das 4.018er installieren und dann mit dem mysqlclient den Dump wieder einspielen.

Torsten.E
08-04-2004, 14:14
Und wie erstelle ich am besten ein DUMP für alle bisherigen Dateien und User usw...
sicher das Zeug dann in die neue Installation wieder zurück.

mysqldump -uBenutzername -pPasswort -A > backup.sql

mysql -uBenutzername -pPasswort < backup.sql

Ich hab`s mal versucht, aber gleich die 1. Tabelle hat er nicht mehr eingelesen :-(((

Gaert
08-04-2004, 15:36
So sollte es eigentlich auch funktionieren...

Was gibt er denn für nen Fehler aus?

Zur not ziehst du dir halt für jede einzelne Datenbank ein Dump, das sollte auf jeden Fall funktionieren.

Torsten.E
08-04-2004, 16:13
Ich hab mal ne Datenbank erstellt, dump erstellt, Datenbank gelöscht, und den Dump wieder zurückgespielt.

Ergebnis:

Jetzt hat JEDER Rechte auf die zurückgespielte Datenbank obwohl das vorher nicht so war.

Warum ?

Gaert
08-04-2004, 20:14
Sehr merkwürdig... sollte eigentlich nicht sein.

Hast du mal ein FLUSH PRIVILEGES gemacht, nachdem du den Dump eingespielt hast?

Torsten.E
08-04-2004, 20:33
Ich habe den DUMP neu eingespielt, jetzt geht es soweit.

ABER:

Unter SuSe 8.1 habe ich zwar jetzt MySQL 4.1.018 am laufen, aber
es gibt keinen Client für diese Distribution.

Unter www2.it-xxl.de/info.php wird der Client immer noch als 3.25
angezeigt und ich weis nicht, ob das sauber läuft.
Und wie könnte ich einen anderen erstellen.

Langsam wird es hoffentlich

Gaert
09-04-2004, 12:59
Natürlich gibt es einen MySQL Client - der ist bei dem Paket dabei (die mysql binary)!
Die PHP-Client Version ist unabhängig und spielt keine Rolle... das funktioniert mit jeder MySQL Version, keine Sorge!

Torsten.E
09-04-2004, 13:21
Du meinst den Shell Client, also das Zeug, was ich von der Server Console aus verwende, oder ???

Was also per PHP in die Datenbank kommt ist egal, welche Version ???

Torsten.E

Gaert
09-04-2004, 13:34
PHP Verwendet die MySQL Client API und die ist Kompatibel zu allen MySQL Versionen.
Es gibt übrigens eine verbesserte MySQL Library für MySQL Versionen ab 4.1 - die sind im Moment aber noch Alpha status.
http://de.php.net/mysqli