Autor | Zpráva | ||
---|---|---|---|
web2000 Profil * |
#1 · Zasláno: 24. 7. 2013, 21:52:38
Ahoj,
Sestavil jsem si skript, který má ze souboru .csv přečíst všechny řádky a uložit data do databáze. Zatím, ale umím uložit jen vždy první hodnotu z každého řádku, uvažuji o vícerozměrném poli, ale nevím jak zprávně jej zapsat. Data v soubor .csv ----------------------- 1413;1250;DR20 1412;650;DR19 Skript ------- <? if ($_REQUEST["odeslano"] == 1) { if (move_uploaded_file($_FILES['data']['tmp_name'], "./soupis.csv")) { $soubor=$_SERVER["DOCUMENT_ROOT"]."/soupis.csv"; $row = 1; $fp = fopen ("$soubor","r"); while ($data = fgetcsv ($fp, 1000, ",")) { $num = count ($data); $row++; for ($c=0; $c<$num; $c++) // uloží po řádku do tabulky { $sql = "INSERT INTO soupis VALUES (0, '$data[$c]')"; $vystup = mysql_query ($sql); } // konec for } // konec while } } |
||
ShiraNai7 Profil |
if (isset($_REQUEST['odeslano']) && $_REQUEST['odeslano'] && !empty($_FILES['data']['tmp_name'])) { if (move_uploaded_file($_FILES['data']['tmp_name'], "./soupis.csv")) { $soubor = $_SERVER['DOCUMENT_ROOT'] . "/soupis.csv"; $fp = fopen($soubor, 'r'); while ($data = fgetcsv($fp, 0, ',')) { $sql = 'INSERT INTO soupis VALUES (0'; for ($i = 0; isset($data[$i]); ++$i) { $sql .= ',"' . mysql_real_escape_string($data[$i]) . '"'; } $sql .= ')'; mysql_query($sql); } } } Pár poznámek: 1) definuješ proměnnou $row ale nevyužíváš ji
2) je potřeba nahraný soubor přesouvat? číst ho můžeš tam, kde je 3) chybělo escapování hodnot pro SQL dotaz 4) používej odsazování, pak nejsou potřeba komentáře typu //konec while
5) skript nijak nekontroluje správnost dat, ale to nemusíš potřebovat |
||
Časová prodleva: 11 let
|
0