Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z fgets :(
Forum PHP.pl > Forum > Przedszkole
busyboy
Witam

Poberam z bazy zmienne która jest ścieżką do pliku (jest ich kilka - scieżek) niestety nie dodaje do bazy linie tylko dubluje te które były w pierwszej ścieżce a jak się skończy to dodaje zawarotść w z kolejnego pliku

  1. $zamnag=mysql_query("select id_zamnag,Sciezka,Gid,Kontrahent from zamnag");
  2. while($x=mysql_fetch_array($zamnag))
  3. {
  4. $csv_file = $x['Sciezka'];
  5. $csvfile = fopen($csv_file, 'r');
  6. $theData = fgets($csvfile);
  7. $i = 0;
  8. while (!feof($csvfile))
  9. {
  10. $csv_data[] = fgets($csvfile);
  11. $csv_array = explode(";", $csv_data[$i]);
  12. $insert_csv = array();
  13. $insert_csv['ean'] = $csv_array[0];
  14. $insert_csv['ilosc'] = $csv_array[1];
  15. $insert_csv['cena'] = $csv_array[2];
  16. $insert_csv['nazwa'] = $csv_array[3];
  17. $dodaj_zam=mysql_query("INSERT INTO zamowienia VALUES('".$insert_csv['ean']."','".$insert_csv['ilosc']."','".$insert_csv['cena']."','".$insert_csv['nazwa']."','".$x['Gid']."','".$x['Kontrahent']."','".$x['Sciezka']."',0)");
  18. $i++;
  19. }
  20. fclose($csvfile);
  21. }


Mam nadzieje że wyjaśniłem problem wystarczająco jasno.

Pozdrawiam
nospor
Po co tworzysz tę tablice:
$csv_data[] = fgets($csvfile);
? Jest ci ona później do czegoś potrzebna? Bo o tutaj:
$csv_data[$i] pobierasz dane z tej $tablicy od $i, ale z kazdym nowym rekordem z bazy ty te $i zerujesz, wiec nic dziwnego, ze dublujesz wyniki.... Albo razem z zerowaniem $i zeruj tablice:

$i = 0;
$csv_data = array();

albo $i zeruj przed pętlą WHILE a nie w petli WHILE
albo w ogole wywal te tablice... po co ci ona?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.