

Špatné kódování v databázi MySQL
Ahoj,
nemohu přijít na to, co dělám blbě.
Z formuláře ukládám data. Soubory php mají kódování utf-8. V meta tagu je rovněž utf-8. Celá databáze má porovnání utf8_czech_ci, tabulka je
CREATE TABLE IF NOT EXISTS `tkosp_akce` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`datum` text CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL,
`krajakce` text CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL,
`poradatelakce` text CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL,
`mestoakce` text CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL,
`adresaakce` text CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL,
`datumakce` text CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL,
`casakce` text CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL,
`nazevakce` text CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL,
`popisakce` text CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL,
`vstupne` text CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL,
`webakce` text CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL,
KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci AUTO_INCREMENT=1 ;
a uloží se mi to takto
Když to načítám, načte se to dobře
Jenže nejde vyhledávat a editovat přímo v phpmyadminu, jelikož se to potom zobrazí špatně.
Co dělám blbě?
Pozri si výsledok týchto príkazov:
Podľa výpisu by si mal vedieť povedať, čo máš nastavené zle.
Na webuzdarma píše
Proč tam je latin2?
Na Onebit píše
Tento výpis si dostal, keď si spustil tie príkazy cez phpMyAdmin? Alebo si to spúšťal cez svoj PHP skript?
V phpMyadminu.
A môžeš sem dať aj výstup, keď to spustíš zo svojho PHP skriptu?
Jo, dam, ale az budu doma u stroje (nejdrive k veceru).
Podarilo sa ti to spustiť priamo z tvojho PHP skriptu?
Děkuji ti za navedení. Stále mi vrtalo hlavou to latin2, které se mi po tvém příkazu vypsalo. Prozkoumal jsem bedlivě PHPMyadmina na Webuzdarma a našel tam porovnání na latin2. Tak jsem to přehodil a už to mám dobře i tam.
Tady značím za vyřešeno.
Ja viem presne kde máš chybu. Ale kedže ty to vieš lepšie, no tak reinštaluj a rekonfiguruj wamp a hľadaj chyby v phpmyadmine. Pretože chyba je vždy u druhých, všakáno?
No ty to víš, tak poraď. Já to nevím a nepíšu přeci, že je chyba u druhých. Stále se ptám, co dělám špatně. Teď jsem dal jinou verzi Wamp serveru a nedělá to. Záhada.
Proč bych měl mít dvě připojení k databázi netuším a ani nevím, jak to udělat (nebo jsem nepochopil, jak to myslíš).
Ja som ti to tam naznačil jasne, len ty hľadáš chybu inde, a všetci radcovia s tebou.
Takže by si mal to všetko zahodiť, a ísť od začiatku ešte raz.
Jasne som napísal, že to ukladáš zle. Chyba nie je v phpmyadmine.
A taktiež si skontroluj ten kúsok skriptu čo si nakoniec odtajil, a po kontrole tam pridaj tam ten jeden spomnaný insert.
phpmyadmin používaj ako kontrolu, ten pracuje na 100% v poriadku.
A takisto si pozri ten výpis premenných od losa, to je jediná rada k veci.
Ty výpisy jsem sem dal. Jak zrealizovat tvou radu nevím. A zrovna na Webuzdarma by se to hodilo, jelikož tam nebudu moci nic konfigurovat.
No veď ja som ti z nich povedal čo máš zle hneď. Až potom si ukázal ten kúsok skriptu, a tam vidím chybu.
Je bezva, ze vidis chybu. Avsak mnohem lepsi by bylo, napsat jakou. Pokud jde o tu pomlcku (utf-8), asi jsem ji napsal dnes rano, kdyz jsem zkousel windows 1250.
Predstav si, ze se budes na neco ptat ty a nekdo ti bude odpovidat ve stylu "mas tam chybu". To preci tazajici vi, ze je nekde chyba a proto se pta.
A nemám prísť ešte za tebou a dopísať ti ju tam? Toš pardon.
Proc bys mel nekam prist? Mame preci internet a tuto poradnu. Staci to napsat tady, jako to delaji jini, kteri chteji poradit.
No ako, je niečo nové? Pomohlo zmazanie pomlčky? Alebo to ešte opravujú chudáci autori phpmyadmina?
Ta pomlčka tam byla jen asi hodinu, jak jsem s tím ten den ráno experimentoval. Nové je to, že na localhost to mám OK po instalaci nové verxze Wampu. Na hostingu u Onebit to je také OK. Ale na hostingu Webuzdarma to je "čínský čaj" a zrovna tam, bych to potřeboval. Asi dám ten formulář na Onebit, na Webuzdarma to dám do iframe a bude.
Čo znamená, že inde je to OK? Prenesieš dáta z webzdarma (export import) a je to OK? Alebo to na každom hostingu vypĺňaš nanovo cez svoju aplikáciu?
S tou pomlčkou sa určite mýliš, alebo ju máš nastavenú niekde inde. Sprav si testovací skript, connect/insert a skúšaj ním vkladať údaje do tej problémovej tabuľky. Zatiaľ si nemal žiadnu snahu riešiť problém..
Omlouvám se, že jsou mé telepatické schopnosti mizerné natolik, že ti nevidím do hlavy, jak myslíš ono connect/insert. Kdybys chtěl poradit, věřím tomu, že bys sem ten kousek scriptu "connect/insert", kterým se má cosi řešit napsal.
Kdybych neměl snahu to řešit, tak bych to neřešil a nepsal dotaz do poradny. Kdybych věděl jak to řešit a řešil to, rovněž bych nepsal dotaz.
Nemám žádnou aplikaci. Mám pouze HTML formulář a v PHP jeho zpracování.
Co znamená, že je to jinde OK, je tady http://pc.poradna.net/q/view/1718109-spatne-kodova ni-v-databazi-mysql?page=r1718401#r1718401 (porovnej s původním dotazem).