Export a Diakritika – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Export a Diakritika – MySQL – Fórum – Programujte.comExport a Diakritika – MySQL – Fórum – Programujte.com

 

Nikus0
Newbie
25. 10. 2009   #1
-
0
-

Potřebuji exportovat databázy.
Jednoduchý script v php už sem sešmolil ale teď by mě zajímalo jak na tu diakritiku.
Omlouvám se pokud sem zvolil blbou kategorii ale přišlo mě že toto je spíše téma na MySQL

Zde je zdrojoví kód (Vím že tam je dost chyb ale je to dělané na rychlo jelikož to docela spěchá a ty chyby za tu diakritiku nemůžou..)



<?php
$kodovani = "utf8";
$db = "databaze";

mysql_connect("host","user","pass");
mysql_select_db("db");

$text = zalohuj($db,$kodovani="",$soubor="");
echo "<textarea cols='120' rows='35'>$text</textarea>";

function zalohuj($db,$kodovani="",$soubor=""){
if(!empty($kodovani))
@mysql_query("SET NAMES '$kodovani'");
function keys($prefix,$array){
$pocet = count($array);
$posledni = $pocet-1;
if($pocet == 0)
return;
for($i = 0; $i<$pocet; $i++){
if($i != $posledni)
$carka = ",";
else
$carka = "";
$radky .= "`$array[$i]`$carka";
}
return ",\n$prefix($radky)";
}
$sql = mysql_query("SHOW TABLE STATUS FROM $db");
while($data = mysql_fetch_array($sql)):
$text .= "--\n-- Struktura tabulky $data[0]\n--\n\n";
$text .= "CREATE TABLE `$data[0]`(\n";
$sqll = mysql_query("show columns from $data[0]");
$e = true;

while($dataa = mysql_fetch_array($sqll)):
if($e){
$e = false;
}
else
$text .= ",\n";
$null = ($dataa[2] == "NO")? "NOT NULL":"NULL";
$default = !empty($dataa[4])? " DEFAULT '$dataa[4]'":false;
if($default == " DEFAULT 'CURRENT_TIMESTAMP'") $default = " DEFAULT CURRENT_TIMESTAMP";
if($dataa[3] == "PRI") $PRI[] = $dataa[0];
if($dataa[3] == "UNI") $UNI[] = $dataa[0];
if($dataa[3] == "MUL") $MUL[] = $dataa[0];
$extra = !empty($dataa[5])? " ".$dataa[5]:false;
$text .= "`$dataa[0]` $dataa[1] $null$default$extra";
endwhile;
$primary = keys("PRIMARY KEY",$PRI);
$unique = keys("UNIQUE KEY",$UNI);
$mul = keys("INDEX",$MUL);
$text .= "$primary$unique$mul\n) ENGINE=$data[Engine] COLLATE=$data[Collation];\n\n";
unset($PRI,$UNI,$MUL);
#data
$text .= "--\n-- Data tabulky $data[0]\n--\n\n";
$query = mysql_query("SELECT * FROM $data[0]");
while($fetch = mysql_fetch_array($query)){
$pocet_sloupcu = count($fetch)/2;
$i = 0;
while($i < $pocet_sloupcu){
if($i < $pocet_sloupcu-1)
$carka = ",";
else
$carka = "";
$values .= "'".mysql_escape_string($fetch[$i])."'$carka";
$i++;
}
$text .= "\nINSERT INTO `$data[0]` VALUES($values);";
unset($values);
}
endwhile;
if(!empty($soubor)){
$fp = @fopen($soubor,"w+");
$fw = @fwrite($fp,$text);
@fclose($fp);
}
return $text;
}
mysql_close();
?>

Nahlásit jako SPAM
IP: 213.250.204.–
Nic není pravda, Vše je dovoleno.
d.mostek0
Návštěvník
25. 10. 2009   #2
-
0
-

To Nikus : Ten kod jsem sice nestudoval, ale nebylo by lepší použít už hotové řešení? Například v phpmyadmin je export pod pár tlačítky ;-) nebo takto

mysqldump -u user-p -B tabulka>záloha.sql

z terminálu

Nahlásit jako SPAM
IP: 88.146.211.–
www.dominik-mostek.cz
Nikus0
Newbie
25. 10. 2009   #3
-
0
-

Já vím.
Ale toto dělám include do administrace u jednoho cms až zjistím jak na diakritiku tak ten celí kód upravím aby tam nebylo nic navíc.. Tento script sem poskládal asi ze 2 scriptů které sem našel přes google..

Nahlásit jako SPAM
IP: 213.250.204.–
Nic není pravda, Vše je dovoleno.
d.mostek0
Návštěvník
25. 10. 2009   #4
-
0
-
Nahlásit jako SPAM
IP: 88.146.211.–
www.dominik-mostek.cz
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 13 hostů

Podobná vlákna

C++ diakritika — založil Patrik Bak

Diakritika — založil peter

Diakritika — založil Merlin

Diakritika — založil DjHard

Diakritika — založil suchla

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý