Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> CSV -> PHP -> MySQL o jedną linię za dużo
lol75
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 14.03.2011

Ostrzeżenie: (0%)
-----


Cześć
Mam prosty chyba problem, może ktoś z was mi pomoże.
Robię prosty skrypt typu

Plik CSV -> PHP -> MySQL

Oto fragment kodu - jedna pętla wzięta z Internetu, która ładnie czyta mi z pliku CSV, jednak o jedną linię za dużo.
Na razie zrobiłem sobie, żeby polecenia INSERT wyświetlane były za pomocą echa na stronie i wychodzi coś takiego:
  1. INSERT INTO GMINY VALUES('Boogatynia;Jelenia Góra;dolnośląskie;;http://g.co/maps/w5qsb');
  2. INSERT INTO GMINY VALUES('Bolesławiec;Wałbrzych;dolnośląskie;;http://g.co/maps/hjffn');
  3. INSERT INTO GMINY VALUES('');


Jak pozbyć się tej pustej linii na końcu?

Kod:

  1.  
  2. foreach(split($lineseparator,$csvcontent) as $line) {
  3.  
  4. $lines++;
  5.  
  6. $line = trim($line," \t");
  7.  
  8. $line = str_replace("\r","",$line);
  9.  
  10. /************************************
  11. This line escapes the special character. remove it if entries are already escaped in the csv file
  12. ************************************/
  13. $line = str_replace("'","\'",$line);
  14. /*************************************/
  15.  
  16. $linearray = explode($fieldseparator,$line);
  17.  
  18. $linemysql = implode("','",$linearray);
  19.  
  20. if($addauto)
  21. echo "insert into GMINY values('','$linemysql');<br/>";
  22. else
  23. echo "insert into GMINY values('$linemysql');<br/>";
  24.  
  25. $queries .= $query . "\n";
  26. }
  27.  


Z góry dzięki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
cudny
post
Post #2





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

Ostrzeżenie: (0%)
-----


trim($csvcontent);
lub
rtrim($csvcontent); jeśli tylko z prawej strony chcesz uciąć.
jest jeszcze ltrim($csvcontent);

oczywiście dajesz to przed tą swoja pętlą


(IMG:style_emoticons/default/smile.gif)

Splits a string into array by regular expression.
Warning

This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.

wez no sobie plik przeczytaj poprzez file czyli:

  1. $file = file($sciezkaDoPliku);
  2. echo '<pre>';
  3. foreach($file as $f) {
  4. //$f to kolejna linia twojego pliku
  5. print_r($f);
  6. }
  7. echo '</pre>';


Ten post edytował cudny 6.12.2011, 10:30:52
Go to the top of the page
+Quote Post
lol75
post
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 14.03.2011

Ostrzeżenie: (0%)
-----


Wielkie dzięki!
Go to the top of the page
+Quote Post
cudny
post
Post #4





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Skoro to pomogło (IMG:style_emoticons/default/tongue.gif) to zobacz jak prawidłowo powinieneś odczytać dane z pliku csv:

http://php.net/manual/en/function.fgetcsv.php

(IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 10:16