Autor | Zpráva | ||
---|---|---|---|
Matess Profil * |
#1 · Zasláno: 28. 10. 2008, 16:44:28
Mám v .txt souboru všechna česká jména (pod sebou) a potřeboval bych je uložit do DB.
Ve jmeno.txt mám: Adam Eva ... a do DB potřebuji uložit: INSERT INTO `jmena` ( `id` , `jmeno` , `datum` ) VALUES (NULL , 'Adam', '0000-00-00'); INSERT INTO `jmena` ( `id` , `jmeno` , `datum` ) VALUES (NULL , 'Eva', '0000-00-00'); atd. prostě chci aby mi ten script vytáhl jméno z prvního řádku v .txt a uložil do DB, potom z druhého, atd. Je mi jedno jesli mi to vypíše všechna INSERT INTO ... na obrazovku nebo mi ty příkazy rovnou provede. Poud to shrnu, tak mi jde o to abych uložil ty jména z .txt do DB a nemusel je přepisovat ručně. Prosím poraďte mi jak na to. Děkuji |
||
Joker Profil |
#2 · Zasláno: 28. 10. 2008, 17:34:10
Teoreticky by to šlo i bez skriptu...
Jestli to je co řádek to jméno, tak stačí v editoru na začátek každého řádku nechat přidat: (NULL,' a na konec každého řádku: ', '0000-00-00'), ...pak z posledního řádku smazat tu čárku na konci, na začátek dopsat INSERT INTO `jmena` ( `id` , `jmeno` , `datum` ) VALUES celé to vzít a pustit jako SQL dotaz. Případně to samé skriptem- na začátku prázdný řetězec, otevřít soubor a dokud není konec, připojit k řetězci: pokud není prázdný, tak čárku, a potom: "(NULL , '", fgets ze souboru a "', '0000-00-00')". No a až to dojde na konec souboru, tak pokud není řetězec prázdný, přidat na začátek ten začátek INSERT příkazu a poslat do databáze. |
||
keeehi Profil * |
#3 · Zasláno: 28. 10. 2008, 19:31:00
připojit se k darabázi předpokládám umíš.
$inc = FOpen ("a.txt", "r"); // otevřeme soubor $txt = fread($inc, filesize("a.txt")); // uložíme do txt FClose($inc); // zavřeme soubor $txt = explode("\n", $txt);// rozdělíme soubor do ple po řádcích for($i=0;$i<count($txt);$i++){ $dotaz = "INSERT INTO jmena (id,jmeno,datum) VALUES (NULL , '$txt[$i]', '0000-00-00');"; mysql_query($dotaz, $link) or die ("SQL dotaz nešlo provést"); } |
||
nightfish Profil |
#4 · Zasláno: 28. 10. 2008, 19:35:41
anebo třeba
<?php $data = file("a.txt"); foreach ($data as $v) mysql_query("insert into jmena(id,jmeno,datum) values (NULL, '$v', '0000-00-00')"); (+ připojení k databázi) |
||
Sicario Profil * |
#5 · Zasláno: 28. 10. 2008, 20:30:49
A trochu elegantneji:
<?php $data = file("a.txt"); $query = "insert into jmena (id,jmeno,datum) values (NULL, '".join("', '0000-00-00'), (NULL, '", array_map('trim', $data))."', '0000-00-00')"; mysql_quer($query); Pri vetsim poctu dat se vyplati uvazovat o importu z .csv souboru (ref:load data). To ale nelze provest na kazdem webhostingu. |
||
Matess Profil * |
#6 · Zasláno: 28. 10. 2008, 20:42:06
keeehi
nightfish Sicario Perfektní! Děkuji mnohokrát. |
||
Časová prodleva: 15 let
|
0