![]() |
![]() ![]() |
![]() |
![]()
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 559 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 559 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 559 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 559 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 559 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 559 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... |
|
|
![]()
Post
#21
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat 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... No po stronie klienta tak wlasnie robisz. podajesz plik ktory chcesz uplodowac. ale po stronie serwera musisz sie do niego specjalnie dobrac tak jak w manualu jest napisane. No ale jesli nie wierzysz to rob jak miales i powiedz czy ci sie upload zrobil i czy na serwerze widzisz pod zmienna $plik swoj plik. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#22
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 0 Dołączył: 13.07.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Ale mi chodzi o to, ze plik mam u siebie na komputerze, daje ścieżke na serwrze do pliku, np: c"\asda\plik.txt". Bo chodzi o to, ze z pliku klienta ma pobierać dane (to nie musi byc zabezpieczone w zaden sposob). W tym wypadku też muszę korzystać z tego co jest napisane w manualu?
BO w tej chwili wyskakuja mi blad: Access denied for user: 'bigd_t@localhost' (Using password: YES) |
|
|
![]()
Post
#23
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Ale mi chodzi o to, ze plik mam u siebie na komputerze A to ttrzeba bylo tak od razu. no ale zmylilo mnie to ze ty ten plik uplodowales. No nie wazne. sek w tym ze chyba mysql nie pozwoli ci pobraz pliku z zewnetrznej sciezki. plik musi znajdowac sie w katalogu mysql/bazy danych. Przynajmniej mi sie inaczej nie udalo. Tak wiec to chyba konczy sprawe (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Albo ja dzis na tyle zamotany jestem ze cos przeoczylem edit: co do errora to wyraznie ci napisalo ze user ktorego uzywasz nie ma praw |
|
|
![]()
Post
#24
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 0 Dołączył: 13.07.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Nadałem uzytkownikowi prawa:
bigd_usert (Privileges: ALL PRIVILEGES) Connection Strings Perl $dbh = DBI->connect("DBI:mysql:bigd_t:localhost","bigd_usert","<PASSWORD HERE>"); php $dbh=mysql_connect ("localhost", "bigd_usert", "<PASSWORD HERE>") or die ('I cannot connect to the database because: ' . mysql_error()); mysql_select_db ("bigd_t"); i dalej wyskakuje blad: Access denied for user: 'bigd_usert@localhost' (Using password: YES) Cos jest nie tak.. Ten post edytował gladiror 13.07.2006, 10:49:20 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 27.09.2025 - 18:37 |