Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zle dzialajacy INSERT
Forum PHP.pl > Forum > Przedszkole
Robertson
Witam
Chce dodac wartosci z pliku csv do tabeli i wszystko jest wporzadku dopuki
robie to w standardowy sposob (INSERT INTO wsad_csv(`pole1`, `pole2`...) VALUES('".$data[0]."', '".$data[1]."'...), ale tych pol do dodania jest 61, wiec chcialem troche uproscic ten kod, ale niestety w ten sposob do tabeli wedruja glupoty ;-(.
Gdzie zrobilem blad?
  1. <?php
  2. $row = 1;
  3. $uchwyt = fopen ("c:wsad2.csv","r");
  4.  
  5. while ($data = fgetcsv ($uchwyt, 1000, ",")) {
  6.  echo $liczba_pol = count($data);
  7.  
  8. $i=0;
  9. $a=1;  
  10.  while($i < $liczba_pol){
  11.  
  12. $pole = "pole".$a++;
  13. $dat = $data[$i++];
  14. echo $dat."| do pola --> |".$pole;
  15.  
  16. $query = "INSERT INTO wsad_csv ($pole) VALUES ($dat)";
  17. $result = mysql_query ($query);
  18. }
  19. echo "<br />n";
  20.  
  21.  $row++;
  22. }
  23. fclose ($uchwyt);
  24. ?>
bigZbig
Pisane z reki wiec moze nie dzialac

  1. <?
  2. // odczytaj plik cvs tak aby przyjal postac tablicy jednowymiarowej
  3. $data = array('wartosc pola 1', 'wartosc pola 2');
  4. $sql = 'INSERT INTO wsad_csv ('.str_repeat("pole".++$i, count($data)).') 
  5. VALUES ('.implode(','$data).')';
  6. ?>


-- edit --
oj napisalem bzdure z rozpedu - zaraz poprawie aby dzialalo
Robertson
uf, to dobrze, bo mi tez nic nie wyszlo ;-)
bigZbig
Poprawilem
  1. <?
  2. // odczytaj plik cvs tak aby przyjal postac tablicy jednowymiaro
  3. $data = array('wartosc pola 1', 'wartosc pola 2');
  4. foreach($data as $key => $value) {
  5. $newData['pole'.++$key] = $value; 
  6. }
  7. $sql = 'INSERT INTO wsad_csv ('.implode(',',array_keys($newData)).') 
  8.  VALUES ( ''.implode('', '', $newData).'')';
  9. ?>

-- edit --
A tak na marginesie podejrzewam, ze Twoj problem zwiazany byl z tym ze nie otaczales $dat cudzyslowami
Robertson
Dziwne - ale dziala.
Dzieki!
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.