Zadejte hledaný výraz...

Čtení záznamu z CSV souboru do PHP

Sashaa
verified
rating uzivatele
(18 hodnocení)
24. 9. 2021 15:51:44
Zdravím,
potřeboval bych poradit s následujícím kodem, který mám:
  if(
  ($soubor = fopen("csv/csvfile/kategorie1.csv", "r")
  ) !== FALSE){
něco...
}
Jak mám napsat, aby $soubor četlo z více odkazů?
například aby to četlo ze souboru:
kategorie1.csv 
a zároveň i
kategorie2.csv
do jednoho $soubor ? Jde to provést pomocí Array funkcí?
díky za rady
24. 9. 2021 15:51:44
https://webtrh.cz/diskuse/cteni-zaznamu-z-csv-souboru-do-php/#reply1491014
Spouter
verified
rating uzivatele
(2 hodnocení)
24. 9. 2021 16:54:01
Napsal Sashaa;1631461
Zdravím,
potřeboval bych poradit s následujícím kodem, který mám:
  if(
  ($soubor = fopen("csv/csvfile/kategorie1.csv", "r")
  ) !== FALSE){
něco...
}
Jak mám napsat, aby $soubor četlo z více odkazů?
například aby to četlo ze souboru:
kategorie1.csv 
a zároveň i
kategorie2.csv
do jednoho $soubor ? Jde to provést pomocí Array funkcí?
díky za rady
Těžko. První zpracuj první soubor, potom druhý soubor atd. Popřípadě zpracuj všechny soubory po jednom a spoj je dohromady, tak jak potřebuješ. Další varianta zpracovat opět po jednom a uložit do databáze.
Jde otevřít i více souborů najednou
Nevím ale k čemu by to bylo. CSV se čte řádek po řádku a je jedno jestli zpracuješ jeden soubor a poté další soubor a nebo dva soubory najednou po řádku. Výsledek bude vždy stejný.
Jinak jak zpracovat všechny soubory po jednom za sebou. Stačí je mít uložené v jedné složce. Složku prolistovat funkcí scandir(); Tím se získají názvy soboru a poté vše zpracovat po jednom např. cyklem foreach...
24. 9. 2021 16:54:01
https://webtrh.cz/diskuse/cteni-zaznamu-z-csv-souboru-do-php/#reply1491013
Sashaa
verified
rating uzivatele
(18 hodnocení)
24. 9. 2021 17:32:45
Spouter: jde o to, že přes tyto csv soubory chci importovat do databaze tisíce produktů pro eshop. Chci to rozdělit právě do jednotlivých CSV souborů dle kategorie, kde jeden CSV soubor bude mít třeba 5000 řádků s informacemi a druhý třeba 2000 řádků. Kdybych to všechno dal do jednoho CSV souborů, tak aby při "INSERT" do databaze nebo "UPDATE" prohlížeč a server zvládl načíst bez toho, aniž by to spadlo, nebo hodilo nějakou chybu...
Proto mi to přišlo víc logicky to tam vložit (INSERT a UPDATE) postupně, aby k výpadku nedošlo při importu tolika dat...
Co bys k tomu poradil?
24. 9. 2021 17:32:45
https://webtrh.cz/diskuse/cteni-zaznamu-z-csv-souboru-do-php/#reply1491012
Spouter
verified
rating uzivatele
(2 hodnocení)
24. 9. 2021 22:37:53
Používat mysqli_free_result(), přerušit skript pokud by se blížil max_execution_time, escapovat všechny speciální znaky zejména (',",%,). Pokud je potřeba výpis, tak jej ukládat do souboru a né výpis do prohlížeče. Do prohlížeče vypisovat jen chyby. Všechny chyby/exceptions by ale měly být ošetřeny např. klasickou metodou try/catch.
24. 9. 2021 22:37:53
https://webtrh.cz/diskuse/cteni-zaznamu-z-csv-souboru-do-php/#reply1491011
Sashaa
verified
rating uzivatele
(18 hodnocení)
25. 9. 2021 01:22:59
Spouter: Zkusím možná tu metodu  mysqli_free_result() jak píšeš, tu neznám. Co se týče výpisu, proto jej ukládám do csv file, aby se to nahrálo automaticky z csv to databáze. 
Čtení z databáze do PHP už je v pohodě, jde jen o to, aby se ty data zapisovali do databaze plynule. 
Ale díky za rady :)
25. 9. 2021 01:22:59
https://webtrh.cz/diskuse/cteni-zaznamu-z-csv-souboru-do-php/#reply1491010
sentosa
verified
rating uzivatele
(1 hodnocení)
25. 9. 2021 09:13:11
Klidne to dej do jednoho CSV, jednoduchy import by mohl vypadat nejak takhle
ini_set('max_execution_time', 0); //nebudue to padat na timeout kdyz to pojede dlouho
$soubor= fopen("csv/csvfile/produkty.csv", "r");
while (($radek= fgetcsv($soubor, 0, ",")) !== FALSE) {
//vzdy se operuje jen s jednim radkem, nenacita se cele csv do pole, takze to usetri pamet
//aby se to do DB neposilaly zaznamy po jednom radku, muzes si zde pripravit pole pro INSERT a
//ukladat to treba po stovkach
}
//zde ulozit, co zbyde u konce souboru a nevyjde do te stovky
25. 9. 2021 09:13:11
https://webtrh.cz/diskuse/cteni-zaznamu-z-csv-souboru-do-php/#reply1491009
alanyeka
verified
rating uzivatele
27. 9. 2021 07:49:47
VoIP virtual phone number
A man was going to the house of some rich person. As he went along the road, he saw a box of good apples at the side of the road. He said, "I do not want to eat those apples; for the rich man will give me much food; he will give me very nice food to eat." Then he took the apples and threw them away into the dust.
He went on and came to a river. The river had become very big; so he could not go over it. He waited for some time; then he said, "I cannot go to the rich man's house today, for I cannot get over the river."
He began to go home. He had eaten no food that day. He began to want food. He came to the apples, and he was glad to take them out of the dust and eat them.
27. 9. 2021 07:49:47
https://webtrh.cz/diskuse/cteni-zaznamu-z-csv-souboru-do-php/#reply1491008
Pro odpověď se přihlašte.
Přihlásit