Autor | Zpráva | ||
---|---|---|---|
gardener Profil |
#1 · Zasláno: 16. 7. 2008, 00:43:19
Zdravím
Mám problém s diakritikou u vkládaných dat do MySQL Tabulku si vytvořím v UTF8 kódování a veškeré skripty a HTML mám taktéž v UTF8 ale pokud vkládám data s diakritikou, zobrazí se v DB rozsypaný čaj:) Netuší někdo, kde by mohla býti chyba? Děkuji za jakoukolliv radu Zde je příkaz pro vytvoření tabulky: $sql = "CREATE TABLE IF NOT EXISTS seznam ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, interpret VARCHAR(30) NOT NULL, album VARCHAR(30) NOT NULL, styl TEXT(30) NOT NULL, rok_vydani YEAR(4), zeme_puvodu TEXT(30), kdy_zaloha VARCHAR(15) NOT NULL, kde_najdu VARCHAR(15) NOT NULL ) TYPE = myisam, DEFAULT CHARACTER SET UTF8;"; |
||
Jan Tvrdík Profil |
#2 · Zasláno: 16. 7. 2008, 00:56:14 · Upravil/a: Jan Tvrdík
gardener
Hledej, "SET NAMES UTF8" |
||
gardener Profil |
#3 · Zasláno: 16. 7. 2008, 01:00:22
To se zde nemůže použít DEFAULT CHARACTER SET UTF8;?
|
||
Jan Tvrdík Profil |
#4 · Zasláno: 16. 7. 2008, 01:02:57 · Upravil/a: Jan Tvrdík
|
||
gardener Profil |
#5 · Zasláno: 16. 7. 2008, 14:52:02
Tak jsem na to hledal odpověď ale k ničemu pořádnímu jsem nedospěl, snad jen že je třeba nastavit
SET NAMES 'charset_name' SET CHARACTER SET charset_name při vytváření databáze ale pokud vkládám znaky do db tak nevím jak to ošetřit,data vkládám pomocí pole, tak jestli to nemám nastavit tam? Díky za jakoukolliv radu <?php include("db_connect.php"); //Starting app with verify connect to database $set = array(); $set["interpret"] = "'$_POST[interpret]'"; $set["album"] = "'$_POST[album]'"; $set["styl"] = "'$_POST[styl]'"; $set["rok_vydani"] = "'$_POST[rok]'"; $set["zeme_puvodu"] = "'$_POST[puvod]'"; $set["kdy_zaloha"] = "'$_POST[zaloha]'"; $set["kde_najdu"] = "'$_POST[umisteni]'"; $sql =("INSERT INTO seznam (" . implode(", ", array_keys($set)) . ") VALUES (" .strtolower(implode(", ", $set)) . ")"); $vysledek_vlozeni = mysql_query($sql); if (!$vysledek_vlozeni){ die('Nepodarilo se vlozit novy radek.'); } else{ echo 'podarilo se vlozit novy radek'; } ?> |
||
Mastodont Profil |
#6 · Zasláno: 16. 7. 2008, 14:53:46
SET NAMES volej i po připojení k databázi, ještě před odesláním dotazu.
|
||
gardener Profil |
#7 · Zasláno: 16. 7. 2008, 15:00:11 · Upravil/a: gardener
To jsem udělal ale bez výsledku, nyní jsme se dočetl že snad COLLATE utf8_czech_ci by mohlo pomoci..
EDIT:COLLATE utf8_czech_ci mi pomohlo nastavit porovnávání na utf8_czech_ci, což je fajn ale zápis v tabulce je stále rozsypaný čaj.. |
||
gardener Profil |
#8 · Zasláno: 16. 7. 2008, 15:06:29
Tak jsem přidál ještě mysql_query("SET CHARACTER SET utf8"); i do kodu pro vložení dat, nastala změna..místo "čaje" se mi zobrazují nyní místo znaků s diakritikou otazníky, což je pokrok dopředu..za chvíli už to určitě půjde korektně:)
mysql_query("SET CHARACTER SET utf8"); $sql =("INSERT INTO seznam (" . implode(", ", array_keys($set)) . ") VALUES (" .strtolower(implode(", ", $set)) . ")"); |
||
Časová prodleva: 6 dní
|
|||
animatorjevajcak Profil * |
#9 · Zasláno: 22. 7. 2008, 15:31:42
zdravim,
ja som sa dopracoval tiez az k tym otaznikom (místo "čaje" se mi zobrazují nyní místo znaků s diakritikou otazníky) a odstranit tie otazniky zatial neviem.. vsade kde som vedel som nastavil UTF8 neexistuje na to nejaky zaruceny silny trik? |
||
animatorjevajcak Profil * |
#10 · Zasláno: 22. 7. 2008, 15:33:40
uz to ide..
takze odvolavam pomohlo mysql_query("SET CHARACTER SET utf8"); ale nechcelo ist predtym.. dikes. |
||
Časová prodleva: 16 let
|
0