Napsal by mi někdo kod php?
Sia vespolek,
našel by se tu někdo kdo by mi napsal php kod pro zapsání dat ze souboru CSV do databáze?
Jde o to že bych ten soubor vložil do formuláře a po odkliknutí by se to uploadlo do databáze a seřadilo do příslušných tabulek.
Přikládám soubor CSV
Budu vděčný a možná i odměna určitě se domluvíme.
Toto je poradna - pokud sháníš programátora, napiš si poptávku do bazaru.
Pokud by se někdo našel a pomohl mi ho napsat tak mi tím i poradí.
Stačí mi ten kod jen nějakým způsobem začít a třeba bych to dal nakonec dohromady sám.
Mmmmm.
Postup bude následující:
1) Nahrání souboru na server
fileupload.php
2) Otevření souboru a čtení řádek po řádku
function.fgets.php
3) Rozdělení jednotlivých buněk na řádku do pole pomocí explode
function.explode.php
4) Projítí vytvořeného pole pomocí konstrukce foreach a zapsání do db
http://php.net/manual/en/control-structures.foreac h.php
Nepodstatné poznámky:
- pokud se bude vyskytovat diakritika bude nutné pracovat i s typem kódování souboru
- Ošetření vstupu (= formátu dat přijatého souboru, chybám)
Děkuji, pročtu a zkusím to nějak splácat :)
Ještě jednou díky
Sice nevím jakou máš představu, ale nahraj soubor na server přes FTP (ulehčíš si tím práci), a pak jenom napiš skript pro seřazení dat do DB. Kdybys nevěděl jak, použij google nebo se někoho zeptej na konkrétní problém.
Upload na ftp vylučuji, jde o to že uploadovat bude moct více lidí tudíž je tato možnost nevyhovující ale i tak ti děkuji
beru na vědomí, snad pomůže příloha
Také děkuji teď už to snad dohromady dám.
Tohle je takový řešení narychlo za pět minut, uprav si to podle sebe, dodělej ošetření atd..
nezbývá než také poděkovat, takže děkuji.
řeším to prvně uložením na ftp a následně zprácováním do databáze.
Problém je že se mi to nechce uložit na ftp do složky playerstaty, atributy nastavený na 777.
Prohlížeč něco hlásí? Máš zapnutý výpis chyb (error reporting)?
Taky si nech pro kontrolu echem vypsat proměnné $cil a $nazev_souboru, abys věděl, jestli v nich nemáš uložené blbosti...
Hlásí toto Warning: Division by zero in /home/michales.eu/michales.eu/upload_playerstat.ph p on line 4
Chyba dělení nulou. Nevím kde tam dělíš nulou. Asi na řádku 4. Hoď jsem celý zdrojový kód, ať vím kde mám hledat řádek č.4
Jinak jsem si testoval tvůj zdroják a u mě to běží v pohodě. Mají skripty na tvém serveru právo zapisovat soubory?
Formulář:
upload_playerstat.php:
Nejprve sis měl zkusit vytvořit skript pro upload a potom, až ti bude daný skript fungovat, vytvořit další pro vkládání do DB.
Předpokládám, že jsi daný skript netvořil, ale pouze někde stáhl, protože bys asi přišel na to proč to hlásí chybu dělení nulou (čtvrtý řádek):
To pochopitelně musí. Nefungovalo ti to proto, protože se žádný upload souboru nekonal, proto to nemohlo ani uložit někam do složky. V souboru s formulářem dej místo:
toto:
(formulář i "pload_playerstat.php" je ve stejné složce, ve které je i složka "playerstaty")
Stále jsem se ale nedozvěděl, jestli skripty mají právo zapisovat na server? Pokud mají pouze s oprávněním 0777, tak to lze změnit i přes FTP, tudíž není potřeba:
K DB - Na 22 řádku nevím jak vypadá soubor "settings.php".
Ve složce seting je toto:
Toto připojení k databázi funguje.
Změnil jsem toto
Už mi to jde, díky
jen mi to do databáze nevypíše všechny řádky ze souboru ale dá je do jednoho společného všechn dohromady.
Dobře, k upload_playerstat.php
Tak tady nemáš definovoanou proměnou "$confid":
Tam není definována proměnná "$rozdeleni_casu[1]" a o řádek výše vytváříš z proměnné "$data[3]" pole pomocí separátoru ":", ale tam je pouze jedno slovo viz. řádek:
Pak na 45 řádku máš špatně DB dotaz:
Je když jsem si nechal doplnit proměné:
Co tam dělá to " '+' " ?
Když jsem pouze poupravil DB dotaz, tak se mi to nacpalo do DB, a každý údaj do vlastního chlívečku, takže nevím jak jsi dosáhl toho, že je máš ve společném chlívečku
Ještě jeden dotaz
toto je příkaz který ukládá data do tabulky v databázy $stats="playerstaty_$confid"; kde $confid je proměnlivé protože záleží co je v odkaze takže třeba upload_playerstat.php kde confid je 12.
Jak má být vytvořena tabulka v databázy aby se to do ní zapisovalo? Udělal jsem playerstaty_ ale to je blbost
Ne toto NENÍ příkaz, který ukládá data do tabulky v DB. Je to pouze proměnná, která definuje název tabulky v DB.
To asi těžko, protože $confid jak jsem psal o úroveň výše, není ve zdrojáku nikde definováno.
Jinak nechápu, čeho chceš vlastně dosáhnout. Jestli chceš definovat název tabulky podle odkazu, tak na to urychleně zapomeň (, ne že by to z technického hlediska nebylo možné). O úroveň výše píšeš, že se ti to do tabulky (s názvem "playerstaty_") zapsalo, ostatně název tabulky si můžeš udělat jakýkoliv chceš.
Už jsem to vyřešil.
Díky ti za veškěré rady, hodně si mi pomohl.