Autor Zpráva
Anonymní
Profil *
Dobry den,
predem bych se chtel omluvit, ze Vas obtezuji "pro odborniky mozna jednoduchym problemem", ale jsem uz opravdu zoufaly....
Provozuji web a eshop (web unitednuke a eshop zencart) jedna se o "tzv. hotove reseni", vse funguje jak ma, jednoduche veci v PHP si upravim sam, takze dalo by se rict, pohoda :)
V soucasne dobe web hostuji na forpsi, ale ve spicce je server velmi pretizeny, stranky obcas zkonci na timeoutu, nebo se nacitaji velmi pomalu, takze jsem se rozhodl presunout prezentaci jinam.
Narazil jsem vsak na problem, se kterym si nevim rady a tim je export sql databaze. V Phpmyadmin vyexportuji databazi (databaze pro web a eshop sdileji spolecnou databazi, odlisuji se jen prefixem - unnuke_ pro web a zen_ pro eshop). Tabulky s prefixem unnuke_ maji cestinu v poradku, tabulky s prefixem zen_ maji cestinu poskozenou (konkretne se jedna o pismena ž,š,ť...)

Popisu Vam, jakym zpusobem jsem "instaloval" web a shop.

Jako prvni jsem nainstaloval web. Postupoval jsem podle pokynu:
"...nastavit na hlavni strance (obvykle po prihlaseni) "Znakova sada pripojeni k MySQL" na "latin2_czech_cs", vytvorit novou databazi (je-li to nutne) s "Porovnavanim" (Collation) "latin2_czech_cs" ci toto porovnavani nastavit existujici (prazdne) databazi na karte "Upravy". Nakonec nahrajte do databaze SQL soubor se strukturou DB, pricemz nastavte "Znakova sada souboru" na "latin2"...."
Kodova stranka pro web je 8859-2.

Pote jsem instaloval eshop - instalace probehla korektne bez zvlastnich pozadavku, vse funguje vcetne diakritiky. Kodova stranka pro eshop je win-1250.

Vse jsem zacal pouzivat v domneni, ze je to v poradku. Po case pri exportu sql jsem si vsak vsiml, ze i v samotnem phpmyadmin se nektere znaky s diakritikou zobrazuji jako otazniky. Chtel bych se Vas zeptat, jestli je nejaka sance na export sql databaze vcetne korektni cestiny. Vcera jsem cely den venoval googleni a nenasel jsem nic, co by me pomohlo. Poradi prosim nekdo jak na to?
Diky.
Kajman_
Profil *
Tipnul bych, že máte v jiném kódování data, než ve kterém jsou opravdu posílána do db.

Pokud to bývá na pár sloupečccíh, tak to občas řeším převodem na blob a pak zpět na varchar či text s odpovídající znakovou sadou. Dalším řešením, které jsem nezkoušel, by mohl být export s hexazápisem dat a u tabulek před importem upravit kódovou stránku na odpovídající datům.

Další otázkou je, zda jsou ty znaky jednobajtové nebo uloženy jako html entity.

No, každopádně před experimentem doporučuji ty tabulky zkopírovat (přímo na tom serveru).
Anonymní
Profil *
Dobry den,
mate pravdu - data jsou v jinem kodovani, nez ve kterem jsou opravdu posilana do databaze. Jeste me vecer napadlo jedno reseni, ale nevim jak to zrealizovat...
Sel by udelat nejaky skript, ktery by se pripojoval k databazi stejnym zpusobem jako eshop (pouze k tabulkam s prefixem zen_) a obsah tabulek by vypsal v prohlizeci? No a ja bych ty vadne tabulky prepsal rucne napr. v Pspad.
A jeste mam na mysli jednu vec - protoze bych chtel potom tuto databazi vest oddelene, je mozne se nejak zbavit toho collate latin2_czech_cs u techto tabulek?
peta
Profil *
Anonymní
1)
nejlepe je pouzit PHPMyAdmin na praci s tabulkami.
Ted zrovna nevim, jaky script vypisuje seznam tabulek, ale konkretne pro nazvy
"zen_" bude treba pouzit nejaky sikovny filtr.
http://dev.mysql.com/doc/refman/5.0/en/show-table-status.html
http://milanc.chvalsiny.net/mysql.php
Mam tuseni, ze "SHOW TABLES"

http://dev.mysql.com/doc/refman/5.0/en/show-tables.html

$dotaz = "SHOW TABLES LIKE 'zen\_'";
$vysl = mysql_query($dotaz) or die(mysql_error());
$pocet = mysql_NumRows($vysl);
if ($pocet>0)
{while ($row = mysql_fetch_array($vysl))
{print_r($row); echo "<hr>";}
}

2) cestina A
$SQLhost = "localhost"; //server (host)
$SQLuser = "root"; //MySQL user
$SQLpsw = ""; //MySQL password
$SQLdbname = "aaa"; //MySQL DB name

$SQLserver = mysql_connect($SQLhost,$SQLuser,$SQLpsw) or die("Error: Nepripojen k DB serveru!");
$SQLdb = mysql_select_db($SQLdbname) or die ("Error: Nepripojen k DB!");
mysql_query("SET NAMES 'cp1250'") or die("Error: Nastav kodovani DB!".mysql_error());

3) cestina B
CREATE TABLE pp_banned (
ip varchar(15) NOT NULL default '',
PRIMARY KEY(ip)
) TYPE=MYISAM COLLATE cp1250_general_ci;
Toto téma je uzamčeno. Odpověď nelze zaslat.