Autor | Zpráva | ||
---|---|---|---|
Will Profil * |
#1 · Zasláno: 19. 9. 2008, 16:21:23
Dobrý den,
potřeboval bych se zeptat jestli jde nějakým způsobem naplnit mysql databázi daty z textového souboru. Soubor.txt 1;pes;kočka 2;pes;kočka 3;pes;kočka 4;pes;kočka 5;pes;kočka Mysql tabulka zvěř : id - (primary key) psy kočky Nějak to udělat přes jakýsi php script, aby se to všechno uložilo do db do správného řádku ---id---psy---kočky 1 pes kočka 2 pes kočka 3 pes kočka Děkuji za všechny rady díky |
||
ninja Profil |
#2 · Zasláno: 19. 9. 2008, 18:57:40
Ano, jde to. Bud pres PHP skript, nebo to mozna pujde i rovnou v phpMyAdminu.
Jestli ma byt soucasti dotazu i jak to udelat, bylo by fajn napsat kam jste se zatim dostal. Protoze pokud chcete aby vam nekdo napsal cely kod, zaradte dotaz do sekce Prace a zakazky. |
||
imploder Profil |
#3 · Zasláno: 19. 9. 2008, 21:24:56
Určitě na to už něco existuje, zkus pohledat. Já jsem napsal funkci, co rozdělí záznam na položky podle oddělovacích znaků. Mohl bys to použít, jestli si to chceš naprogramovat.
tady |
||
imploder Profil |
#4 · Zasláno: 19. 9. 2008, 21:27:36
Jinak v PHPmyAdminu to je. Textová podoba databáze se nazývá dump a skládá se z příkazů na její vytvoření (buď jen struktura nebo i obsah). Tj. ne přímo textová tabulka.
|
||
imploder Profil |
#5 · Zasláno: 19. 9. 2008, 22:37:48 · Upravil/a: imploder
function words($string) { $ri = 0; /* na první prvek v poli výsledků */ $word = ""; /* vyprázdni slovo */ for($si=0; $si < strlen($string); $si++) { if(ord($string[$si]) < 59 || ord($string[$si]) > 59) $word .= $string[$si]; /* přidej znak do slova */ else { /* středník (ASCII #59) */ $result[$ri] = $word; $ri++; $word = ""; /* zapiš slovo a jdi na další */ } } return $result; } function zapis($soubor, $tabulka) { if($f = fopen($soubor, "r")) { while($radek = fgets($f)) { $polozky = words($radek); $query = "insert into $tabulka values ("; for ($i = 0; isset($polozky[$i]); $i++) { $query .= "'".$polozky[$i]."'"; if(isset($polozky[$i+1])) $query .= ", "; } $query .= ")"; /* výpis prováděných SQL příkazů */ echo $query."<br />"; mysql_query($query); } fclose($f); } else echo "soubor $soubor se nepodařilo otevřít"; } Funkce zapis() zapíše položky ze souboru $soubor do tabulky $tabulka. Soubor má tvar jako ve vašem příkladu, jenom je středník za každou položkou včetně poslední v záznamu, tedy: 1;pes;kočka; 2;pes;kočka; 3;pes;kočka; 4;pes;kočka; 5;pes;kočka; 5;pes;kočka; Vypisuje to prováděné SQL. Jestli nechcete, aby se vypisovalo, stačí zakomentovat ten řádek. |
||
Časová prodleva: 16 let
|
0