Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Formularz i zapis do bazy danych
Forum PHP.pl > Forum > Przedszkole
daros17
Witam,

Mam pewien problem, nie mogę sobie poradzić z rozdzieleniem tekstu i zapisaniem później do bazy zawartości
  1. $plik_tmp = $_FILES['plik']['tmp_name'];
  2. $plik_nazwa = $_FILES['plik']['name'];
  3. $plik_rozmiar = $_FILES['plik']['size'];
  4. if(is_uploaded_file($plik_tmp))
  5. {
  6. move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
  7.  
  8.  
  9. if ($plik == false) {
  10.  
  11. $plik = file("upload/".$plik_nazwa);
  12. var_dump($plik);
  13. $dziel = explode("|", $plik);
  14. foreach($dziel as $value)
  15. {
  16. echo $value;
  17. }
  18. else
  19. {
  20. exit('Blad podczas próby otwarcia pliku!');
  21.  
  22. }
  23. }


Pliki się wysyłają oraz je widzę, ale nie mam pomysłu jak je zapisać. Każda linijka to miałby być nowy rekord w bazie. Kombinowałem z foreach jak widać , ale wyskakuje Array.

po wpisaniu var_dump($plik); ukazuje mi się zawartośc pliku, co jest do poprawy?


Myślałem również o nl2br i to ładnie działa, ale jak później zapisać do bazy? Tak samo jeśli uda mi się rozdzielić ciągi znaków explode to jak później zapisać wszystko w innych rekordach np w tekscie mamy 50 linijek i kazda linijka to inny rekord.
PanGuzol
Jako drugi parametr explode musisz dać string, a Ty dajesz tablicę stringów.
daros17
to w takim razie jak rozwiązać sprawę? Próbowałem z implode, lecz wówczas wywala błąd w pętli

edit -> udało mi się to rozdzielić, ale jak teraz zapisać każdą linijkę jako osobny rekord?
PanGuzol
Najlepiej to chyba skorzystać z jakiejś pętli i http://dev.mysql.com/doc/refman/5.5/en/insert.html
daros17
Wiem, że trzeba stworzyć zapytanie, ale nie mam pomysłu jak to zrobić. to znaczy zrobiłem, ale zapisuje jedynie ostatnią linię
PanGuzol
To pokaż co stworzyłeś.
daros17
nic nadzwyczajnego, dodałem jedynie taką linijkę z zapytaniem, cały kod poniżej
  1. require_once('polacz.php');
  2. baza();
  3.  
  4. $plik_tmp = $_FILES['plik']['tmp_name'];
  5. $plik_nazwa = $_FILES['plik']['name'];
  6. $plik_rozmiar = $_FILES['plik']['size'];
  7. if(is_uploaded_file($plik_tmp))
  8. {
  9. move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
  10. if ($plik == false) {
  11.  
  12. $plik = file("upload/".$plik_nazwa);
  13. $import = count($plik);
  14. echo 'Zaimportowano '.$import.' mail<br/>';
  15. foreach ($plik as $tresc) {
  16. echo htmlspecialchars($tresc).'<br/>\n';
  17. }
  18.  
  19. $connection = mysql_query("insert into users SET osobie = '$tresc' ")or die (mysql_error());
  20. }
  21. else
  22. {
  23. exit('Blad podczas próby otwarcia pliku!');
  24.  
  25. }
  26. }
PanGuzol
Dodaje Ci tylko raz bo zapytanie tworzysz i wykonujesz po wyjściu z pętli.


  1. $query = "INSERT INTO users(osobie) VALUES ";
  2. foreach ($plik as $tresc) {
  3. echo htmlspecialchars($tresc).'<br/>\n';
  4. $query.="('$tresc'),";
  5. }
  6. $query = substr($query,0,-1); //usuwamy niepotrzebny przecinek z końca zapytania
  7. $connection = mysql_query($query)or die (mysql_error());
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.