Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Š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
[http://pc.poradna.net/file/view/28927-kodovani-pjp myadmin-png]
Když to načítám, načte se to dobře
[http://pc.poradna.net/file/view/28928-kodovani-png ]
Jenže nejde vyhledávat a editovat přímo v phpmyadminu, jelikož se to potom zobrazí špatně.
Co dělám blbě?

Předmět Autor Datum
To "uloží se mi to takto" vidíš kde? V PHPMyAdmin? Pak ten PHPMyAdmin není nastavený, aby pracoval v…
Jan Fiala 22.05.2017 07:11
Jan Fiala
To "uloží se mi to takto" vidíš kde? V PHPMyAdmin? Ano. Pak ten PHPMyAdmin není nastavený, aby pra…
Kráťa 22.05.2017 09:29
Kráťa
A koukal jsem tam (v phpmyadminu) teď na zdrojám a také tam je <meta http-equiv="Content-Type" conte…
Kráťa 22.05.2017 09:37
Kráťa
Treba je vse v poradku ale ty znaky nezvlada pouzity font.
Dwane Dibbley 22.05.2017 10:03
Dwane Dibbley
Vždyť to je nějaká Verdana. Proč by měli na Webuzdarma nějaký exotický font? Jo a na localhost mi to…
Kráťa 22.05.2017 10:14
Kráťa
Font to zvlada nezvlada to asi ten program lebo to asi do neho programator nenaprogramoval. Vseobecn…
MM.. 22.05.2017 10:19
MM..
PHPMyAdmin je webove rozhrani k admistraci databaze. Tam ti ovladaci panely nepomohou.
Jan Fiala 22.05.2017 11:03
Jan Fiala
Ja neviem v com si to pozera, ked to je webove tak to je bud blbo na tom webu (napr. nedava to sprav…
MM.. 22.05.2017 12:47
MM..
Ale když to v db poedituji, třeba překlep, tak to je dobře v phpmyadminu, ale blbě na webu. Jak se d…
Kráťa 22.05.2017 11:54
Kráťa
Zkousel jsi to zobrazit pomoci konzole a ne jenom pomoci weboveho PHPMyAdmin?
vopicak 22.05.2017 11:09
vopicak
Nevím, jak se to na Webuzdarma dělá.
Kráťa 22.05.2017 11:55
Kráťa
Je to presne naopak ako píšeš. Phpmyadmin je v poriadku, ale uložené je to zle. Jedine čo mu pomôže…
čitateľ 22.05.2017 10:17
čitateľ
Proc si myslis, ze je to ulozene spatne? To zobrazeni odpovida fyzicky ulozenemu UTF-8. Jen to PHPMy…
Jan Fiala 22.05.2017 11:05
Jan Fiala
Také mi to přijde, že je PHPMyAdmin nějak divně nastaven. Ale vůbec netuším, kde co nastavovat. Ješt…
Kráťa 22.05.2017 11:58
Kráťa
Osobne bych vyhodil vsechny UTF8_czech a to vcetne sloupecku v tabulkach. Nechal bych pouze UTF8 na…
Jan Fiala 22.05.2017 12:06
Jan Fiala
Zkusím. Teď jdu na poštu, tak potom.
Kráťa 22.05.2017 12:10
Kráťa
Tabulku jsem odstranil, udělal znovu, pouze takto CREATE TABLE IF NOT EXISTS `tkosp_organizace` ( `…
Kráťa 23.05.2017 09:58
Kráťa
Proste je ten tvoj MyPhpAdmin naprogramovany chybne. Jaku mas verziu mysql a toho adminu a janeviemc…
MM.. 23.05.2017 10:32
MM..
Ale přeci nejsou ty PHOMyadminové oba špatní (u mě na local i na Webuzdarma). Něco budu dělat blbě j…
Kráťa 23.05.2017 10:54
Kráťa
Môže mi to byť jedno, akurát neviem či ste všetci retardovaní, ale hneď na začiatku som vám napísal…
čitateľ 23.05.2017 10:58
čitateľ
Ulozene to ma dobre ved to vidim ocami mojimi tuto na obrazku co dal ze tam ma UTF8 bajty. Blbo nast…
MM.. 23.05.2017 11:47
MM..
Ako myslíš.
čitateľ 23.05.2017 12:08
čitateľ
Ty jsi na to kápl. Sice netuším jak to zprovoznit i na Webuzdarma, ale Onebit! [http://pc.poradna.n…
Kráťa 23.05.2017 11:35
Kráťa
Hoď si na local stejnou verzi, pak se vyvaruješ těmhle blbostem, který sou klidně i na pár hodin:)…
Odoaker 23.05.2017 12:15
Odoaker
Netuším, jak zaktualizovat phpmyadmina ve wamp serveru. Zkusím poslední verzi wamp serveru. Vzpomíná…
Kráťa 23.05.2017 12:26
Kráťa
Muzes taky zkusit HeidiSQL, osobne pouzivam a maximalni spokojenost.
vopicak 23.05.2017 12:30
vopicak
Už jen z názvu to bude asi jen databáze, ne? On používá i php, takže nějakou triádu. Ze všech, co se…
Odoaker 23.05.2017 13:28
Odoaker
No Krata chce ocividne klikaci nastroj na MySQL, tak jsem zminil HeidiSQL. Je to normalni SQL klient…
vopicak 23.05.2017 13:40
vopicak
Pretože tento jav dôverne poznám. Je to proste tak. Nestačí mať nastavenú databázu, súbor, meta tag,…
čitateľ 22.05.2017 12:12
čitateľ
Můj připojovací soubor do db. Co je na něm špatně? <?php $id_spojeni = mysql_connect('xxxxxx', 'xxx…
Kráťa 23.05.2017 11:39
Kráťa
ten posledny riadok tam bol vzdy, alebo si ho teraz dopisal? skus za to vsetko pridat jednoduchy in…
čitateľ 23.05.2017 12:11
čitateľ
Byl tam vždy.
Kráťa 23.05.2017 12:48
Kráťa
Máš v ňom chybu..
čitateľ 23.05.2017 12:58
čitateľ
Pozri si výsledok týchto príkazov: SHOW VARIABLES LIKE 'character_set%'; SHOW VARIABLES LIKE 'colla…
los 23.05.2017 11:40
los
Na webuzdarma píše character_set_client utf8 character_set_connection utf8 character_set_database…
Kráťa 23.05.2017 12:52
Kráťa
Protoze server je nakonfigurovany ve vychozim postaveni jako Latin2 a DB se pak vytvari podle vychoz…
Jan Fiala 23.05.2017 13:00
Jan Fiala
Opäť zle radíš. Problém nie je v db. Môže byť aj latin2
čitateľ 23.05.2017 13:02
čitateľ
Samozrejme ze DB byt v latin 2, pak muzes mit tabulky v CP1250 a sloupce v UTF-8. Ale k cemu to cele…
Jan Fiala 23.05.2017 13:12
Jan Fiala
Odbočením k absurdnosti sa snažíš zakryť svoje blbé rady? Jeho databáza nebola v latin2. Ukazoval to…
čitateľ 23.05.2017 13:15
čitateľ
Blbe rady mas skor ty. Riesenie si nedodal, a pises dokazatelne nepravdy (uz v dotaze vidiet UTF8 ba…
MM.. 23.05.2017 13:18
MM..
Vidíš zle, ale okuliare ti v tomto nepomôžu.
čitateľ 23.05.2017 14:25
čitateľ
Co vidim zle? www.utf8-chartable.de á = c3 a1 = á Ked to tam v tom vypise nevidis tak chod k ocnemu…
MM.. 23.05.2017 14:32
MM..
Vidíš, ale nechápeš. Už ma to nebaví. Napísal som v čom je problém, ale kedže si myslíte že chyba je…
čitateľ 23.05.2017 14:37
čitateľ
Ja to chapem nechapes to ty. V databaze je C3 A1 a zobrazovac to zobrazi blbo lebo kdesi berie ze ma…
MM.. 23.05.2017 14:40
MM..
Toto je poradna, ne "hadankovna", kde se ma hledat jaky problem.
Kráťa 23.05.2017 14:56
Kráťa
A ano to set names ma byt udajne s utf8 a ne utf-8
MM.. 23.05.2017 13:28
MM..
Kráťa sem dával výpis proměnných. Ukazuje mu to server i DB v Latin2. Proč? Vím, že mu PHPMyAdmin uk…
Jan Fiala 23.05.2017 14:58
Jan Fiala
Tento výpis si dostal, keď si spustil tie príkazy cez phpMyAdmin? Alebo si to spúšťal cez svoj PHP s…
los 23.05.2017 13:49
los
V phpMyadminu.
Kráťa 23.05.2017 14:11
Kráťa
Skusil si uz to set names zmenit na utf8 namiesto utf-8 jak pisal citatel? (to len tak pomimo toho c…
MM.. 23.05.2017 14:15
MM..
To tam bylo zkraje dobre. Pomlcka vznikla az dnes rano. Citatel nenapsal v cem je chyba, pouze, ze j…
Kráťa 23.05.2017 14:19
Kráťa
A môžeš sem dať aj výstup, keď to spustíš zo svojho PHP skriptu?
los 23.05.2017 14:37
los
Jo, dam, ale az budu doma u stroje (nejdrive k veceru).
Kráťa 23.05.2017 14:51
Kráťa
Podarilo sa ti to spustiť priamo z tvojho PHP skriptu?
los 01.06.2017 07:26
los
Děkuji ti za navedení. Stále mi vrtalo hlavou to latin2, které se mi po tvém příkazu vypsalo. Prozko… poslední
Kráťa 01.06.2017 08:14
Kráťa
Ja viem presne kde máš chybu. Ale kedže ty to vieš lepšie, no tak reinštaluj a rekonfiguruj wamp a h…
čitateľ 23.05.2017 12:30
čitateľ
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…
Kráťa 23.05.2017 12:47
Kráťa
Ja som ti to tam naznačil jasne, len ty hľadáš chybu inde, a všetci radcovia s tebou. Takže by si ma…
čitateľ 23.05.2017 12:56
čitateľ
Ty výpisy jsem sem dal. Jak zrealizovat tvou radu nevím. A zrovna na Webuzdarma by se to hodilo, jel…
Kráťa 23.05.2017 12:59
Kráťa
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 c…
čitateľ 23.05.2017 13:01
čitateľ
Je bezva, ze vidis chybu. Avsak mnohem lepsi by bylo, napsat jakou. Pokud jde o tu pomlcku (utf-8),…
Kráťa 23.05.2017 14:16
Kráťa
A nemám prísť ešte za tebou a dopísať ti ju tam? Toš pardon.
čitateľ 23.05.2017 14:20
čitateľ
Proc bys mel nekam prist? Mame preci internet a tuto poradnu. Staci to napsat tady, jako to delaji j…
Kráťa 23.05.2017 14:58
Kráťa
No ako, je niečo nové? Pomohlo zmazanie pomlčky? Alebo to ešte opravujú chudáci autori phpmyadmina?
čitateľ 29.05.2017 17:09
čitateľ
Ta pomlčka tam byla jen asi hodinu, jak jsem s tím ten den ráno experimentoval. Nové je to, že na lo…
Kráťa 31.05.2017 22:11
Kráťa
Čo znamená, že inde je to OK? Prenesieš dáta z webzdarma (export import) a je to OK? Alebo to na kaž…
čitateľ 01.06.2017 05:03
čitateľ
Omlouvám se, že jsou mé telepatické schopnosti mizerné natolik, že ti nevidím do hlavy, jak myslíš o…
Kráťa 01.06.2017 07:17
Kráťa

To "uloží se mi to takto" vidíš kde? V PHPMyAdmin? Pak ten PHPMyAdmin není nastavený, aby pracoval v UTF-8 a zobrazuje ti to špatně on. Uložené je to dobře, na první pohled jde o UTF-8

Jestli máš celou DB nastavenou v UTF-8, pak to nedělej u jednotlivých sloupců. Jen tím zbytečně přidáváš režii

Font to zvlada nezvlada to asi ten program lebo to asi do neho programator nenaprogramoval.
Vseobecne ak to je nejaky stary neunicode program tak jeho zobrazovanie zavisi od nastavenia v ovl.panely - lokalne nastavenia, na poslednej karte font pre neunicode programy. Neviem jaka verzia toho programu vie co, ja s mysql nerobim vobec. Ale ako uz bolo pisane mas tam jasne ulozene UTF-8 znaky a hlupy zobrazovaci program ktory to nechape a zobrazuje ascii. Takze to vpodstate ani nemusis riesit ptz v db je to tak ako si chcel.

Je to presne naopak ako píšeš. Phpmyadmin je v poriadku, ale uložené je to zle.

Jedine čo mu pomôže, je spraviť si malý php skript na konveziu.

1. vytvoriť dva konekty do db, jeden pôvodný, druhý so správne nastaveným charsetom
2. načítať dáta, a uložiť ich naspäť cez druhý konekt

prípadne si sprav duplikát tabuľky, a otestuj si to tam, keď to dobre dopadne, tak len prehodíš tabuľky.

Tabulku jsem odstranil, udělal znovu, pouze takto

CREATE TABLE IF NOT EXISTS `tkosp_organizace` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `datum` text  NOT NULL,
  `kraj` text  NOT NULL,
  `organizace` text  NOT NULL,
  `orgamesto` text  NOT NULL,
  `orgapsc` text  NOT NULL,
  `orgaadresa` text  NOT NULL,
  `orgaweb` text  NOT NULL,
  `orgaosoba` text  NOT NULL,
  `orgakontakt` text  NOT NULL,
  KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 ;

A stále stejné. Když vložím řádek přímo v PHPMyAdminu, je tam diakritika správně, ale zobrazuje se to špatně na webu.
A když vložím řádek přes formulář z webu, zobrazuje se to na webu správně a v PHPMyAdminu špatně.

Proste je ten tvoj MyPhpAdmin naprogramovany chybne. Jaku mas verziu mysql a toho adminu a janeviemcoho este?
Ja s tym nerobim ale treba googlit slova MyPhpAdmin utf8, napr. tuto nejaky mudruje (pod sekciou "Edit" v odpovedi 30) https://stackoverflow.com/questions/4777900/how-to -display-utf-8-characters-in-phpmyadmin
Ale treba si citat aj dalsie weby co najde googlr.

Znaky mas jasne ulozene spravne. UTF8 uklada specialne znaky ako 2bajty a to tam je vidiet ze to tak ulozene mas (2znaky namiesto 1 specialneho) takze ulozene to mas v UTF8 a blbo to zobrazuje ten zobrazovac, treba len prist na to ze z akeho dovodu.

Hoď si na local stejnou verzi, pak se vyvaruješ těmhle blbostem, který sou klidně i na pár hodin:)

S tím kódováním sem taky bojoval, charset, collation, meta, všecky hovadiny na utf8 a pak sem si nevšiml, že se mi uložil php, html nebo nějakej soubor v jiným kódování. Taky paráda:)

Už jen z názvu to bude asi jen databáze, ne? On používá i php, takže nějakou triádu.
Ze všech, co sem vyzkoušel, tak sem zůstal u XAMPP, ta je relativně aktuální, portable, přehledná, nezůstává běžet apache v servisce na pozadí, když to vypneš atp.

U wampu to bude asi stejný, uložíš si config.inc.php z phpmyadmina, smažeš celou starou verzi, hodíš novou a tam vložíš config.

Na webuzdarma píše

character_set_client utf8
character_set_connection utf8
character_set_database latin2
character_set_filesystem binary
character_set_results utf8
character_set_server latin2
character_set_system utf8
character_sets_dir /opt/rh/mariadb55/root/usr/share/mysql/charsets/

Proč tam je latin2?

Na Onebit píše

character_set_client utf8mb4
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8mb4
character_set_server utf8
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/

Blbe rady mas skor ty. Riesenie si nedodal, a pises dokazatelne nepravdy (uz v dotaze vidiet UTF8 bajty. Dekodovat na cisla si ich mozes podla tabulky ak mi neveris, ja to vidim zhlavy). A aj Jan to videl hned v 1.odpovedi.
(otazka je ze kam sa kuka ten phpmyadmin, ze si mysli ze ma zobrazpovat ascii a ne UTF8 ktore tam su skutocne ulozene)

Ja to chapem nechapes to ty. V databaze je C3 A1 a zobrazovac to zobrazi blbo lebo kdesi berie ze ma zobrazovat bajty po jednom (niektore ascii kodovanie to je jedno ktore)
To co si pisal nepomaha, viz nizsie. Resp. nepisal si konkretne riesenie ziadne.
P.S. Ked vies riesenie tak ho napis normalne a ne hrat sa na hadanky. Zatial si nenapisal konkretne fakty, len vety typu ze nikto nic nechape a ze treba googlit.

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.

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.

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).

Zpět do poradny Odpovědět na původní otázku Nahoru