php-myadmin export češtiny z databáze
14 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
ze stránky kamdes.wz.cz mi nejde exportovat databázi tak, aby se přenesla i čeština, i když se stránky zobrazují správně. Stránky jsou psané ve win-1250. vyzkoušel sem všech devět kombinací kódování při exportu (cp připojení k MySql a cp souboru), ale ani jedno neproběhlo správně, vždycka tam byly otazníky místo ž a š, stejně jako při procházení databáze v Adminu. Poradí mi někdo jak to udělat správně?
-
hm.. phpmyadmin na wz zobrazuje vsechno v utf-8, tak se moc nediv .. muzes to maximalne exportovat rucne, ale to je docela slozity.
-
A co nějakej skript, kterej by to někam zapsal? Buď na server nebo abych si to moh stáhnout? Nenašla by se někde ta funkce kterou MyAdmin používá na export, a upravit si ji na jiny kodovani?
-
jo jo to znam. Na serveru (je to jiny hosting) je phpMyAdmin, na localu mam uplne stejny-i stejne nastaveny, na serveru mam stranky, na localu uplne stejny, a at delam co delam, kdyz prenesu databazi ze serveru na localhost, misto ž a š se ulozi otazniky... tohle mi zustava zahadou...
-
Vyexportuj všechny tabulky pomocí php skriptu do csv souborů a tu pak zpětně pomocí php skriptu nahraj (php totiž použije obsah databáze tak, jak je, tj. na rozdíl od phpMyAdmina nekonvertuje kódování znaků). V souvislosti s tím by mne zajímalo, jak je možné, že když při přihlašování do phpMyAdmina vyberu Language: Czech (cs-win1250), tak po přihlášení je použita vždy cs-utf-8 (a nedá se změnit). Není to nějaká blbost?
-
muzu se podelit skriptem, ktery vygeneruje do promenne sql vypis databaze. (@mysql_connect($hostname,$username,$password) AND @mysql_select_db($database)) ? $data = "" : die(); // pri uspesnem spojeni inicializuje promennou $res = mysql_query("SHOW TABLES"); while ($row = mysql_fetch_array($res, MYSQL_NUM)) { $res1 = mysql_query("SELECT * FROM $row[0]"); while ($row1 = mysql_fetch_array($res1, MYSQL_NUM)) { $data .= "INSERT INTO $row[0] VALUES ("; for ($j=0;$j<($pr=mysql_num_fields($res1));$j++) { $data .= "'".addslashes($row1[$j])."'"; if ($j<$pr-1) $data .= ", "; } $data .= ");\n"; } $data .= "\n"; } Muze se to ukladat treba do souboru, to je jedno.
-
Franta: mohl bys mi prosím napsat jak by ten kód měl vypadat? Já php zas tolik neumim.. Dík
-
na zacatek pridas <?php $hostname = "mysql.webzdarma.cz"; $username = "login_na_mysql"; $password = "heslo_na_mysql"; $database = "na_wz_stejne_jako_login_na_mysql"; a na konec pridas echo $data; ?>
-
Do tohohle skriptu dej správné jméno, heslo a název databáze a po spuštění se ti vytvoří v adresáři, kde je skript, soubory, pojmenované jako název_tabulky.csv, které budou obsahovat data ze stejnojmenných tabulek: <?php $server = 'mysql.webzdarma.cz'; $usernm = 'uziv_jmeno'; $userpw = 'heslo_do_databaze'; $dbname = 'jmeno_databaze'; // na webzdarma stejne jako $usernm $link = @mysql_connect($server, $usernm, $userpw) or die('Nelze se pripojit do databaze: ' . mysql_error()); @mysql_select_db($dbname, $link) or die('Nelze vybrat databazi' . $dbname); if(!$result = mysql_query("SHOW TABLES FROM $dbname", $link)){ echo "Nelze zjistit nazvy tabulek v databazi $dbname"; echo "Chyba MySQL: " . mysql_error(); exit; } $tables_count = 0; while($row = mysql_fetch_row($result)){ $table_name[$tables_count] = $row[0]; $tables_count++; } for($i = 0; $i < $tables_count; $i++){ if(!$result = mysql_query("SELECT * FROM " . $table_name[$i], $link)) { $data = "Tabulka " . $table_name[$i] . " neobsahuje zadna data"; } else { $data = ""; while($row_data = mysql_fetch_row($result)) { $data .= join(";", $row_data) . "\r\n"; } } $filename = $table_name[$i] . ".csv"; if(!$file = @fopen($filename, 'w')){ echo "Nelze otevrit soubor $filename pro zapis dat"; } else { @fwrite($file, $data); @fclose($file); } } echo "Akce probehla bez chyb"; ?>
-
díky, povedlo se to skvěle. Dá se to pak nějak importovat zpátky?
-
V phpMyAdminovi klikni na SQL, do políčka vlož ten vyexportovaný text a stiskni Proveď. Před tím bys měl vymazat obsah tabulek, které budeš importovat. Takže pozor, abys je nevymazal a pak neměl co naimportovat.
-
Já to tedy vyexportoval pomocí toho skriptu, ale stejně tam mám místo š,ž otazníky :(
-
To je zjevná kolize mezi win1250 a iso-8859-2. Ještě ti blbne ť, možná sis toho nevšiml. http://www.jakpsatweb.cz/archiv/rozdily-kodovani.html Už se to tu řešilo mockrát. Hledej. Nápověda "collate" česky "porovnávání".
-
Bohužel nikde jsem nenašel řešení. Jdou ty data nějak zachránit?