Autor | Zpráva | ||
---|---|---|---|
gardener Profil |
#1 · Zasláno: 17. 7. 2008, 10:21:21 · Upravil/a: gardener
Zdravím mám aplikaci seznam do které vkládám data z formu, všechny skripty i form jsou v utf-8
při spojení s db nenastavuji kodování <?php $id_spojeni = mysql_connect('localhost','root',''); //command for db connect with three parameters server,user,password if (!$id_spojeni) die('Spojeno s Mysql DB se nezdarilo.'); //if verify id for connect failed(return false)will be written error message $vysledek_vybrani = mysql_select_db('pokus',$id_spojeni); if (!$vysledek_vybrani) die('Databazi pokus se nepodarilo vybrat.'); //It same,if verify id for connect failed(return false)will be written error message ?> při vytvoření db je nastaveno porovnávání kodování na utf8_czech_ci a při vkládání dat je je nasteveno zvovukódování na utf-8 mysql_query("SET CHARACTER SET utf8"); $sql =("INSERT INTO seznam (" . implode(", ", array_keys($set)) . ") VALUES (" .strtolower(implode(", ", $set)) . ")"); Ale i přes toto všechno se zobrazují místo diakritiky otazníky.. Tuší někdo prosím,co dělám špatně, nebo kde může být chyba? Děkuji za jakoukolliv radu.. |
||
Str4wberry Profil |
#2 · Zasláno: 17. 7. 2008, 10:26:08
A četl’s FAQ?
|
||
gardener Profil |
#3 · Zasláno: 17. 7. 2008, 10:31:00
Ano ale mám to naopak v PHP je čeština o.k ale na DB nikoliv..
|
||
gardener Profil |
#4 · Zasláno: 17. 7. 2008, 10:48:39
Tak jsem FAQ prošel ještě jednou a doplnil ještě nastavení kódování při volání db
$nastaveni_kodovani = mysql_query("SET NAMES 'utf8'"); if (!$nastaveni_kodovani){ die('Nepodařilo se nastvit kódování.'); } Ale výsledek je pořád stejný, říkám si, jestli to nebude PHPmyadminem? |
||
Alphard Profil |
#5 · Zasláno: 17. 7. 2008, 23:57:07 · Upravil/a: Alphard
Ale výsledek je pořád stejný, říkám si, jestli to nebude PHPmyadminem?
data vkládá PMA nebo PHP? pokud PMA, zkus vložit pomocí php v mysql_query(), předtím samozřejmě set names // ještě jsem si vzpomněl, mě jednou taky nechtěla databáze poslouchat, nakonec jsem to vyřešil definicí tabulky s DEFAULT CHARACTER SET latin2 COLLATE latin2_czech_cs |
||
Str4wberry Profil |
#6 · Zasláno: 18. 7. 2008, 06:32:34
Reakce na gardenera:
„Další podrobnosti naleznete na http://molhanec.net/mysql_cestina_minifaq.html toto téma také kvalitně řeší článek na Intervalu“ |
||
gardener Profil |
#7 · Zasláno: 18. 7. 2008, 13:05:50
Reakce na Str4wberry: Ten článek jsem procházel, sice je to tam popsané ale řešení u mne nefunguje korektně, chyba bude jinde.
Už jsem vyzkoušel nastavit kódování při volání DB, stejně tak i při zápisu dat (různé kombinace), jediné čeho jsme docílil, bylo to že se data nevkládali, takže jsme od toho opustil, říkám si jestli to opravdu není phpMy adminem(mám verzi 2.10.1)? Zkusím přiložit zdrojový kod skriptů, které se při vkládání využívají, třeba tam někdo uvidí, kde by mohla býti chyba:..já už netuším, vyzkoušel jsem všechno..mrzí mne,že se vždycky zaseknu na takovém problému jako je diakritika, ale už vážně netuším co dělám špatně.. Propojení s db <?php $id_spojeni = mysql_connect('localhost','root',''); //command for db connect with three parameters server,user,password if (!$id_spojeni) die('Spojeno s Mysql DB se nezdarilo.'); //if verify id for connect failed(return false)will be written error message $vysledek_vybrani = mysql_select_db('pokus',$id_spojeni); if (!$vysledek_vybrani) die('Databazi pokus se nepodarilo vybrat.'); //It same,if verify id for connect failed(return false)will be written error message $nastaveni_kodovani = mysql_query("SET NAMES 'utf8'"); if (!$nastaveni_kodovani){ die('Nepodařilo se nastavit kódování.'); } //It same,if verify id for connect failed(return false)will be written error message ?> Vložení z formuláře do db <?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]'"; mysql_query("SET CHARACTER SET utf8"); $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'; } ?> |
||
Časová prodleva: 16 let
|
0