![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 0 Dołączył: 13.07.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam plik, który zawiera nastepujace dane: "SZT" "AKUM. PANASONIC P-6P/4B PR R6/2100 NIMH" "0101-99017" "22" 6,74 9,50 12,000 "BAT" "SKL" "SZT" "AKUMULATOR CAMELION R6 NC-AA800-B4" "0710-01002" "22" 2,59 3,60 16,000 "BAT" "SKL" Każda nazwa jest od siebie oddzielona tabulatorem. Jest 9 nazw w 1 wierszu, w drugim tez 9 itd. Jak takie coś wrzucić do bazy danych zeby SZT byla w kolumnie ze SZT, nazwa wyrobu tez w jednej kolumnie itd.(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Chodzi mi o to, ze wklejam do textarea cala zawartosc pliku, klikam wyslij i dane zostana wrzucone do bazy danych... Prosze o jakąś pomoc... Ten post edytował gladiror 12.07.2006, 10:33:06 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 634 Pomógł: 14 Dołączył: 27.05.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
A czy te dane beda wklejane w odpowiednum porzadku czy skrypt ma sie domyslac co gdzie i jak ... ?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 0 Dołączył: 13.07.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Maja byc wklejane w odpowiednim porzadku, to znaczy:
"SZT" "AKUM. PANASONIC P-6P/4B PR R6/2100 NIMH" "0101-99017" "22" 6,74 9,50 12,000 "BAT" "SKL" "SZT" "AKUMULATOR CAMELION R6 NC-AA800-B4" "0710-01002" "22" 2,59 3,60 16,000 "BAT" "SKL" Po kolei kazdy wiersz ma ten sam porzadnek. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 251 Pomógł: 13 Dołączył: 15.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
uzyj explode po tabulatorze \t dostaniesz dane w tablicy a z tymchyba sobie poradzisz
|
|
|
![]()
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Więc robisz to w następujący sposób. Najpierw pobierasz dane z pliku funkcją file" title="Zobacz w manualu php" target="_manual. Każdy element tablicy odpowiada jednemu wierszowi. Następnie musisz rozdzielić dane we wszystkich wierszach. Do tego służy funkcja explode" title="Zobacz w manualu php" target="_manual. Wygląda to mniej więcej tak do tej pory:
W tej chwili każdy element tablicy $elements ma pola od 0 do 8, gdzie każde pole odpowiada kolejnym kolumnom. Wypadało by jeszcze usunąć cudzysłowy przed wstawieniem danych. Żeby nie męczyć się z każdym polem osobno, zrobimy sobie tablicę z numerami pól, w których dane są zamknięte w cudzysłowy. Nasza pętla będzie wyglądać tak:
Teraz na końcu pętli for możesz dodać zapytanie, które wstawi sobie te dane. Podglądnij sobie sytuację funkcją var_dump" title="Zobacz w manualu php" target="_manual. |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Więc robisz to w następujący sposób. Najpierw pobierasz dane z pliku funkcją file To nie jest plik tylko textarea (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jesli to mialby byc plik to jest bardzo szybka metoda:http://forum.php.pl/index.php?showtopic=49...=0entry273398 |
|
|
![]()
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Też racja, ale czy MySQL usunie cudzysłowy? Za bardzo nie zajmowałem się importem w MySQL, natomiast pgsql chyba nie ujmował łańcuchów znakowych w cudzysłowy.
Nie doczytałem, że to textarea... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Wtedy zamieniasz pierwszą instrukcję na
Ten post edytował Ludvik 12.07.2006, 11:30:53 |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Też racja, ale czy MySQL usunie cudzysłowy? Teoretycznie ta opcja powinna pomoc:ENCLOSED BY ale nie testowalem ino wyczytalem w manualu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 0 Dołączył: 13.07.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Nospor - zmieniłem ten kod dla własnych potrzeb, ale coś nie chce wrzucić mi danych do bazy... Nie wyskakuje żaden błąd.
Dane są zapisywane w pliku jak powyżej. Może cudzysłowy robią problem?? |
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
no jakis blad musi wyskakiwac. ty to robisz z poziomu php? a dales mysql_error() ?
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 0 Dołączył: 13.07.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Zrobilem cos takiego:
|
|
|
![]()
Post
#12
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
no mowilem zebys dal mysql_error()...
pozatym zarzuc zapytanie tworzate tabele. poteszcze u siebie edit: pozatym do pliku co uploudujesz to sie dobera inaczej. poczytaj se cos o uplodzie (najlepiej w manualu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 0 Dołączył: 13.07.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Taki błąd wyskoczył:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'FIELDS TERMINATED BY ' ' LINES TERMINATED BY ' '' at line 1 |
|
|
![]()
Post
#14
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
z tego co wyczytalem w manualu, to lista kolumn musi byc na koncu. pozaty miales pare bugow w zapytaniu
no i pozatym jak ci pisalem zle pobierasz plik |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 0 Dołączył: 13.07.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Do pobierania pliku mam użyć funkcji is_uploaded_file (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Co oznacza 'ala' w LOAD DATA INFILE 'ala' (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Czyżby nazwe pliku?? Ten post edytował gladiror 12.07.2006, 12:26:11 |
|
|
![]()
Post
#16
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Co oznacza 'ala' w LOAD DATA INFILE 'ala' (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) no to zes mnie zagial... 'ala' to nazwa pliku. wstawilem sobie do testow. przeciez ja nie mam twojej zmiennej $plik, nieprawdaz?Co do uploadu i dobieranie sie do plikow: http://pl.php.net/manual/pl/features.file-upload.php |
|
|
![]()
Post
#17
|
|
Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy php obsługuje to, ale jest słowo kluczowe LOCAL, które przesyła plik do serwera z maszyny klienta. Jeżeli serwer stoi na maszynie klienta to podajesz ścieżkę bezwzględną do pliku, żeby nie było problemu. Rozdzielanie tabulatorami i znakami nowej linii jest domyślnie ustawione. Dodałem obsługę tych cudzysłowów.
Sprawdź to... Ten post edytował Ludvik 12.07.2006, 12:33:50 |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 0 Dołączył: 13.07.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Ludvik - i to bedzie działało na serwerze w necie??
|
|
|
![]()
Post
#19
|
|
Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Szczerze mówiąc to wątpię, żeby rozszerzenie mysql w php obsługiwało słowo kluczowe LOCAL. Póki co, to nie mam gdzie sprawdzić czy to działa. Tak czy inaczej nawet z pominięciem LOCAL możesz umieścić plik na serwerze, gdzie stoi baza danych (zwykle na tej samej maszynie stoi serwer http) i podać po prostu bezwzględną ścieżkę do niego.
Musisz po prostu popróbować i poczytać manual MySQL. |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 0 Dołączył: 13.07.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Mi nie działa to...
Nospor - jeżeli chodzi o ten upload to nie mozna dac normalnie ściezki do pliku pod zmienna? Kiedys tak robilem i bez problemu kopiowalo mi zdjęcia na serwer... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 18:30 |