Autor Zpráva
PetrHH
Profil *
Dobry den,

snazim se do MySQL databaze ulozit text s cestinnou. Pripojuji se takto:
mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD);
mysql_select_db(SQL_DBNAME);

pak nastavim kodovani v ktrem ma komunikace probihat:
mysql_query("set names cp852");

Text ktery se do databaze snazim ulozit je ze stranek, ktere jsou v kodovani iso-8859-2. Vsechno se ulozi ale kdyz se snazim dostat z databaze nejaky text tak mam vzdy spatne pismenko š. At velke nebo male.
Muzete mi prosim poradit co delam blbe? Prolezam google jako divy ale asi zadavam spatna klicova slova. Do dokumentace na MySQL.org jsem se take dival.

Dekuju!

Petr
SQI
Profil *
Není lepší nastavit přímo kodování databázi a to samý taky mít na stránce?
Jestli to v tvém případě není žádoucí, zkus napsat celý kód, ať máme představu.
PetrHH
Profil *
Tak toto je cely kod ukladani do databaze.

$_POST["zprava"] = addslashes($_POST["zprava"]);
$_POST["datum"] = DatumToMySQL($_POST["datum"]);
mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD);
mysql_select_db(SQL_DBNAME) or die("Nelze vybrat databázi: ". mysql_error());
mysql_query("set names cp852") or die(mysql_error());
$vysledek=mysql_query("insert into blog (datum,nadpis,text) values ('".$_POST["datum"].
"','".$_POST["nadpis"]."','".$_POST["zprava"]."')") or die(mysql_error());


Jak nastavit kodovani pro celou databazi/tabulku?
SQI
Profil *
melo by to jit SQL dotazem > CREATE DATABASE "databaze" WITH ENCODING='WIN1256'

za WIN1256 si das kodovani jake potrebujes
SQI
Profil *
nbo primo v phpMyAdmin a neřešíš to:-)
PetrHH
Profil *
Bohuzel to v phpMyadminu nejde. Teda v tom co mam na localhostu ano ale ten co je na mem hostingu to ma asi nejak zakazane :-(. Tabulka uz je take vytvorena a jsou v ni nejaka data.
Milda
Profil *
1. Jaká je to verze mysql? Podpora různých znakových sad je od 4.1
2. Ta tabulka, do které se zapisuje, už obsahuje nějaká dřívější data, která jsou v cp852, nebo proč to má být právě v tomto? Jinak je rozhodně jednodušší nastavit data stejně jako stránky, jak radí SQI.
PetrHH
Profil *
add 1) MySQL je tam ve verzi 4.1.11

add 2) Stranky jsou v iso-8859-2. Snazil jsem se hledat v googlu, na mysql.org ale nikde nemohu najit nic jineho nez CP852. To je asi iso-8859-2 (neni-li to nahodou to same).
Data jsem do databaze ukladal pomoci kodu ktery je uveden vyse. Zajimave je ze to dela jen pismeno š.
Milda
Profil *
4.1.11 je OK, znakový sady umí.
Stranky jsou v iso-8859-2
Což je latin2 - nastav databázi na latin2 - asi bude potřeba jmenovitě přenastavit tabulky. Ale pokud vkládáš data svym kódem, neměl by s tím být problém, horší sou "zděděná" data z minulých verzí apod.
cp852 je dosovský kódování, je pro stejný účel jako latin2 tak asi díky tomu se zparchantí jen to š
Toto téma je uzamčeno. Odpověď nelze zaslat.

0