skrypt PHP do importowania danych CSV do MySQL

19 lutego 2007

To jest prosty skrypt, który pozwala na import danych CSV do bazy danych. To jest przydatny, ponieważ można go edytować w odpowiednich polach, przesłać go wraz z plikiem csv i połączenie go z sieci i będzie się resztą.

To pozwala na określenie separatora w pliku csv, czy jest to śpiączka, itp. kartę Pozwala także do wyboru separatora linii, pozwala na zapisywanie wyników do pliku (znany jako zrzucania danych SQL).

Umożliwia także włączenie puste pole na początku każdego wiersza, który jest zwykle liczbą całkowitą autoinkrementacja klucz podstawowy.

Ten skrypt jest przydatne przede wszystkim, jeśli nie masz phpmyadmin, lub nie chcesz kłopotów z logowaniem i wolą kilka kliknięć rozwiązanie, lub po prostu są polecenia facet.
Wystarczy upewnić się, tabela jest już utworzony przed próbuje zrzucić danych.
Prosimy wysłać komentarze, jeśli masz jakieś raporcie.

Pobierz plik tutaj

Tagi:
  1. kredyt studencki
    08 czerwiec 2011 o 06:56

    Dzięki temu skrypt php możemy łatwo importować dane do mysql csv

  2. Praca i przetwarzanie plików tekstowych CSV i PHP
    15 maja 2011 na 17:52
    # 2
  3. Joln
    11 maja 2011 na 07:52

    skrypt Great! Tnx dużo

  4. UMAir
    02 maja 2011 07:39

    Hi ...
    Jestem stoi problem, podczas korzystania z tego, ona błąd mówiąc,
    "Przestarzałe: Funkcja split () jest przestarzałe w C: \ wamp \ www \ test1 \ simplecsvimport.php on line 64
    Plik nie może zapisywać, sprawdź uprawnienia. Znaleziono w sumie 41 rekordów w tym pliku csv. "

    Odpowiedź Pls, co się stało!
    z góry dzięki!

  5. justkid
    07 kwietnia 2011 o 10:25

    Jestem bardzo mylić z tym kodem!
    ale nie będę próbować się!
    BTW, jak kod html lub pole, aby wybrać ten kod

  6. Jorge Dias
    14 marca 2011 na 19:01

    Dzięki, bardzo dobry importer csv.
    Znalazłem jednak jeden mały problem, działa tylko z pliku csv z konstrukcją: "pole1", "pole2", "pole3", itp. ale Hava pliku CSV tak: pole1, pole2; filed3, itp

    Jedyne, co mogę zmienić to $ fieldseparator, ale jak mogę "powiedzieć" skrypt, który nie korzysta z pliku "(ogranicznik pola)?
    My ideia był combobox z $ fieldseparator (lub ;) i drugi z $ fielddelimiter (albo nic)

    Z góry dziękuję.

  7. Zardzewiały
    03 lutego 2011 na 14:56

    Każdy pomysł, jak dostać ten skrypt do pracy w dziedzinach, które są ujęte w cudzysłowy, tak że pola z przecinkami w nich nie można odczytać jako nowy wpis?

    Mam danych, która zawiera przecinków jak kwoty i komentarzach w których użytkownicy mogą mieć używane przecinkami. Muszę cały importowane pola i ten skrypt traktuje je jako nowe pola.

  8. qwewe
    23 stycznia 2011 na 14:56

    @ Mark Cloyd
    "Address = VALUES (adres)
    I tutaj pojawia się błąd jak Parse error: syntax error, unexpected '='

  9. ronbowalker
    15 stycznia 2011 na 17:54

    @ Joofoo
    Mam załadowany kod ale nie mogę uzyskać informacji na temat aktualizacji bazy danych MySQL ...

    CSV zawiera:
    Nagłówek -> nazwę użytkownika, hasło, wiadomości, e-mail, zdjęcia, daty
    Wiersz2 -> Bill, stary,,,,
    Row3 -> Jane, gal,,,,
    Row4 -> David, dziecko,,,,

    A oto kod ...:
    <? Php

    / / Set-up z pliku iphonelogin.php w "remote" folder ...
    / * Łączenie z * db /
    / / $ Link = mysql_connect ('ronbo.db.6405862.hostedresource.com "," ronbo "," Pepper0689') or die ('Nie można połączyć się z DB');
    / / Mysql_select_db ('ronbo', $ link) or die ('Nie można wybrać bazy danych');

    / / https://www.ihappyapps.com/DataFolder/loader.php
    /********************************/
    / * Kod w https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Edycja wpisów aby odpowiadały odpowiednie wartości
    /********************************/
    $ Databasehost = "dbhost";
    $ Databasename = "name";
    $ Databasetable = "stole";
    $ Databaseusername = "nazwa użytkownika";
    $ Databasepassword = "hasło";
    $ Fieldseparator = "";
    $ Lineseparator = "\ n";
    $ Csvfile = "spreadsheet.csv";
    /********************************/
    $ Addauto = 1;
    /********************************/
    $ Save = 0;
    $ Outputfile = "output.sql";
    /********************************/

    if (! file_exists ($ csvfile)) {
    echo "Serwer jeszcze żądania, ale w pliku CSV, który chcesz załadować do bazy danych nie ma ... .. \ n";
    exit;
    }

    $ Chunksize = 1 * (1024 * 1024);
    $ File = fopen ($ csvfile, "rb");
    if (! $ file) {
    echo "Błąd podczas otwierania pliku danych. \ n";
    exit;
    }

    $ Rozmiar = filesize ($ csvfile);

    if (! $ size) {
    echo "Plik jest pusty. \ n";
    exit;
    }

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
    @ mysql_select_db ($ nazwa_bazy_danych) or die (mysql_error ());

    $ Lines = 0;
    $ Queries = "";
    while (! feof ($ plik)) {
    $ Csvline = fgets ($ file, $ chunksize);

    $ Lines + +;
    if ($ lines <2) continue;

    $ Line = trim ($ csvline, "\ t");

    linii $ = str_replace ("\ r ","",$ linii);

    /************************************************* ************************************************** *********
    Ta linia ucieka znak specjalny. usunąć, jeśli wpisy są już uciekł w pliku csv
    ************************************************** ************************************************** ********/
    $ Line = str_replace ("'"," \ '", $ linia);
    /************************************************* ************************************************** ********/

    $ Linearray = explode ($ fieldseparator, $ linia);

    $ Linemysql = linearray ("','",$ implode);

    $ Zapytanie "insert = do $ databasetable values ​​('$ linemysql');";

    if ($ zapisz) $ queries .= $ zapytanie. "\ N";

    @ mysql_query ($ zapytanie);
    echo $ linie "\ n".
    }
    fclose ($ plik);

    $ Lines -= 3;

    @ Mysql_close ($ con);

    <>

    I naprawdę potrzebuje pomocy w uzyskaniu tego do pracy ...
    Ron

  10. joofoo
    11 stycznia 2011 na 11:16

    @ Roy
    I zmodyfikowany skrypt tak, że zużywa znacznie mniej pamięci podczas przetwarzania dużych plików (to hit php limit pamięci przy próbie użycia go na 100mb plik CSV). Zmiany są następujące:


    $chunksize = 1*(1024*1024);
    $file = fopen($csvfile,"rb");
    if(!$file) {
    echo "Error opening data file.\n";
    exit;
    }

    $ Rozmiar = filesize ($ csvfile);

    if (! $ size) {
    echo "Plik jest pusty. \ n";
    exit;
    }

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
    @ mysql_select_db ($ nazwa_bazy_danych) or die (mysql_error ());

    $ Lines = 0;
    $ Queries = "";
    while (! feof ($ plik)) {
    $ Csvline = fgets ($ file, $ chunksize);

    $ Lines + +;
    if ($ lines <2) continue;

    $ Line = trim ($ csvline, "\ t");

    linii $ = str_replace ("\ r ","",$ linii);

    /************************************************* ************************************************** *********
    Ta linia ucieka znak specjalny. usunąć, jeśli wpisy są już uciekł w pliku csv
    ************************************************** ************************************************** ********/
    $ Line = str_replace ("'"," \ '", $ linia);
    /************************************************* ************************************************** ********/

    $ Linearray = explode ($ fieldseparator, $ linia);

    $ Linemysql = linearray ("','",$ implode);

    $ Zapytanie "insert = do $ databasetable values ​​('$ linemysql');";

    if ($ zapisz) $ queries .= $ zapytanie. "\ N";

    @ mysql_query ($ zapytanie);
    echo $ linie "\ n".
    }
    fclose ($ plik);

    $ Lines -= 3;

    @ Mysql_close ($ con);

    Dziękuję,

  11. Khaled
    11 stycznia 2011 at 10:35

    @ Khaled
    Jak eksportować UTF8 excel do output.sql
    dzięki

  12. Khaled
    11 stycznia 2011 o 09:46

    Próbowałem skrypt ale output.sql jest pisanie dziwne rzeczy,
    wstawić do test_excel wartości ("PK |!????? Q Q k5 k5 q q q Q k5 ....

    jak te rzeczy
    Jak mogę rozwiązać ten problem. specjalnego formatu arkusza Excel?

  13. Królikarnia
    30 grudnia 2010 w 18:57

    Cześć chłopaki, po prostu chciałem dać Wam wszystkim znać, że znalazłem kogoś na mnie samego programu, czego potrzebuję.

  14. Królikarnia
    29 grudnia 2010 w 01:31

    @ Warren

    /********************************/
    Plik ten zawiera wiele prób zmiany wprowadzone przez Warren (nie programista) 28 grudnia 2010 r. w oparciu o komentarze w miejscu źródła informacji i innych, tak aby ten program w jednej potrzebuje. To jest bardzo niepełne. Pomoc jest najbardziej cenionych i bardzo potrzebne.

    Linie dodane do tworzenia pól tekstowych na stronie internetowej bazy danych URL nazwy i hasła itp.
    /********************************/

    Zapraszamy na serwer Prześlij Utility

    Program działa z komputera do wypełni dwa puste tabele w nowej bazy danych MySQL w swojej witrynie: wgraniu każdego nazwę pliku mniej rozszerzenia, z unikalnym numerem z przodu jak licznik, do keywords_categories tabeli, a następnie a następnie przypisuje numer 1 w pustą kolumnę przed pierwszym Colum danych z pliku, oraz zwiększa liczbę o jeden dla każdego kolejnego pliku przetworów z tego katalogu, tak aby liczba assigend do nazwy kategorii w tabeli jest zgodna z należących do niej słowa kluczowe, które są następnie przesłane do tabeli słów kluczowych.

    To jest zrobione dla wszystkich plików csv w określonym katalogu na swoje.

    Ignoruje pierwszych pięciu linii w pliku csv.

    Adres URL witryny:
    Nazwa bazy danych:
    Nazwa użytkownika bazy danych:
    Hasło bazy danych:
    Ścieżka katalog zawierający pliki do przesłania:

    /********************************/
    Pytanie
    Jak uzyskać powyższych danych z pól tekstowych w programie pasujące do wymienionych poniżej?
    /********************************/

    <? Php
    /********************************/
    Line dodał, aby zapobiec czasu na większe pliki.
    /********************************/

    set_time_limit (0);

    /********************************/
    Pobierz plik nazwy plików do przetworzenia, należy usunąć rozszerzenie nazwy pliku następnie wykorzystać je wgrać jako nazwy kategorii, do keywords_categories tabeli.
    /********************************/

    /********************************/
    Usuwa plik extentions nazwa
    skopiowane z www perlmonks org /? node_id = 151232
    /********************************/

    parse_out_extension sub {
    die ("Brak pliku do analizy. \ n") if (@ _!);

    my ($ plik) = @ _;
    my @ szt.;

    map {push (@ kawałki, $ _)} split (/ \ /, $ file.)

    my $ koniec = pop (@ kawałkach);
    $ File = ~ s / \ $ end / /.

    return ($ plik), jeżeli $ plik;

    /********************************/
    / * Kod oryginalny w https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Edycja wpisów aby odpowiadały odpowiednie wartości
    /********************************/
    $ Databasehost = "localhost";
    $ Databasename = "test";
    $ Databasetable = "próbek";
    $ Databaseusername = "test";
    $ Databasepassword = "";
    $ Fieldseparator = "";
    $ Lineseparator = "\ n";
    $ Csvfile = "filename.csv";
    /********************************/
    / * Czy chcesz dodać ampty dziedzinie na początku te zapisy?
    / * Uwaga Warren w przypadku słów kluczowych, które są w pierwszej kolumnie w każdym pliku danych, na podstawie pliku przez ten nowy, pusty plik miejsce coum frot din słów kluczowych należy zmienić tak, że odzwierciedla on numer przypisany do nazwy kategorii, która składa się z nazwy pliku mniej rozszerzenie i umieszcza go w nową, pustą kolumnę.
    / * To jest przydatne, jeśli masz tabelę z pierwszego pola jest liczbą całkowitą auto_increment. Uwaga Warren. To jest to, co jest potrzebne w przypadku nazw plików, które są mniej exteniosn upoaded do keywords_categories tabeli.
    / * I pliku csv nie ma takich jak puste pole przed rekordy.
    / * Zestaw 1 "tak" i 0 punktów za nie. UWAGA: nie ustawiony na 1, jeśli nie jesteś pewny.
    / * To może zrzucić danych w polach, czy to źle dodatkowe pole nie istnieje w tabeli. Uwaga Warren prawdopodobnie nie potrzebujesz tego pliku I moim przypadku, ale tylko przypuszczenie z mojej strony, ale trzeba zobaczyć trzeba, jeśli takie istnieją.
    /********************************/
    $ Addauto = 1;
    /********************************/
    / * Czy chcesz zapisać mysql zapytania w pliku? Jeśli tak ustawić $ zaoszczędzić do 1.
    / * Pozwolenie na plik powinien być ustawiony na 777. Albo przesłać przykładowy plik przez ftp i
    / * Zmiany uprawnień lub wykonać w wierszu polecenia: output.sql touch & & chmod 777 output.sql
    /********************************/
    $ Save = 0;
    $ Outputfile = "output.sql";
    /********************************/

    if (! file_exists ($ csvfile)) {
    echo "Nie odnaleziono pliku. Upewnij się, czy podano poprawną ścieżką \ n ".
    exit;
    }

    $ File = fopen ($ csvfile, "r");

    if (! $ file) {
    echo "Błąd podczas otwierania pliku danych. \ n";
    exit;
    }

    $ Rozmiar = filesize ($ csvfile);

    if (! $ size) {
    echo "Plik jest pusty. \ n";
    exit;
    }

    $ Csvcontent = fread ($ plik, $ size);

    fclose ($ plik);

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
    @ mysql_select_db ($ nazwa_bazy_danych) or die (mysql_error ());

    /********************************/
    Aby uniknąć wstawiania pierwsze cztery rzędy adveristing nagłówku i pustą linią. Linia równe zeru kod został zastąpiony poniższy kod.
    /********************************/

    $ Lines = 1; (wartość licznika jest 1)
    $ Queries = "";
    $ Linearray = array ();

    foreach (split ($ lineseparator, $ csvcontent) as $ linia) {

    $ Lines + +; (przypisuje pierwszej linii # 2 (nagłówek)

    if ($ lines => 5) {(Start na # 5 "wszystko większy lub równy 5?)

    $ Queries = "";
    $ Linearray = array ();

    foreach (split ($ lineseparator, $ csvcontent) as $ linia) {

    $ Lines + +;

    $ Line = trim ($ line, "\ t");

    linii $ = str_replace ("\ r ","",$ linii);

    /************************************
    Ta linia ucieka znak specjalny. usunąć, jeśli wpisy są już uciekł w pliku csv
    ************************************/
    $ Line = str_replace ("'"," \ '", $ linia);
    /*************************************/

    $ Linearray = explode ($ fieldseparator, $ linia);

    $ Linemysql = linearray ("','",$ implode);

    if ($ addauto)
    $ Zapytanie insert "= do $ databasetable wartości (",'$ linemysql');";
    więcej
    $ Zapytanie "insert = do $ databasetable values ​​('$ linemysql');";

    $ Queries .= $ zapytanie. "\ N";

    /************************************
    Ten fragment kodu poniżej został dodany do teraz wyświetlać komunikaty o błędach.
    ************************************/

    $ Wynik = mysql_query ($ zapytanie);

    / / Sprawdź wynik
    / / To pokazuje aktualną wysyłać zapytanie do MySQL, a błąd. Przydatne do debugowania.
    if (! $ result) {
    $ Message = "nieprawidłowe zapytanie:". mysql_error (). "\ N";
    $ Message .= "Całe zapytania: '. $ Query;
    die ($ message)
    }

    @ Mysql_close ($ con);

    if ($ zapisz) {

    if (! is_writable ($ outputfile)) {
    echo "Plik nie jest zapisywalny, prawa wyboru. \ n";
    }

    else {
    $ Plik2 = fopen ($ outputfile, "w");

    if (! $ plik2) {
    echo "Błąd zapisu do pliku wyjściowego. \ n";
    }
    else {
    fwrite ($ plik2, $ queries);
    fclose ($ plik2);
    }
    }

    }

    echo "Znaleziono w sumie $ lines rekordów w tym pliku csv. \ n";

    ?>

  15. Królikarnia
    28 grudnia 2010 o 22:30

    Tylko niewielkie korekty do wniosku, dwie tabele w bazie danych MqSQL wspomniałem są rzeczywiście w nazwie:

    keywords_categories

    słowa kluczowe

  16. Królikarnia
    28 grudnia 2010 o 22:10

    @ Warren

    Ponadto, tak z ciekawości może również proces pliku txt (to właśnie listę słów w nim) w ten sam sposób?

    (Jestem nowy w tym i wiem, mogę się z prośbą o wiele, więc jeśli ktoś mógłby to mały projekt dla mnie, jeżeli jest to uzasadnione, być może moglibyśmy dyskutować moje Za niewielką kwotę na swój czas w dokonaniu zmian moich potrzeb? Proszę dać mi znać).

    Mój e-mail: wr.spence @ hotmail.com

  17. Królikarnia
    28 grudnia 2010 w 21:37

    Nie jestem programistą. Widzę skryptu i może być blisko, czego potrzebuję, lub może być może być podstawą, czego potrzebuję, nie jestem pewien.

    Muszę wykonać tę samą funkcję przesyłania w kółko, ale z innego podkatalogu każdym z dysku twardego, na listę plików csv, a do innego MySQL DB za każdym razem (na differret witryny za każdym razem). W większości przypadków db nie ma żadnych danych, ale byłoby idealnie (ale nie istotne), jeżeli skrypt może nadal pracować z db które nie są dane, bez wpływu na istniejące dane).

    Mi jest potrzebne do logowania do bazy na serwerze (należy poprosić mnie o adres URL witryny i nazwy użytkownika i hasła db, itp.).

    Potrzebuję czegoś, co pozwala mi przeglądać i wybrać nazwę katalogu na dysku twardym, lub do niego wejść.

    Wtedy proces każdego pliku csv w tym katalogu, jeden po drugiej, w następujący sposób:

    Na każdy plik jest mi potrzebny do pierwszej kolejności podejmuje nazwę pliku (mniej rozszerzenia) i przesłać go do bazy w kategorii tabeli. Tabela ta zawiera numer klucza, który następnie przypisane do tej nazwy.

    I wtedy potrzeba skryptu do przesyłania tylko Colum słowo (1 Colum danych) tego pliku do słów tabeli i dodać pasujące migającej na nazwę kategorii z pierwszego pliku.

    Należy zauważyć, że plik CSV często zawiera trzy wiersze tekstu nagłówka i puste, wszystkie cztery chcę ignorowane i nie wysłał. Nie są często puste wiersze na te eend pliku, Ja też chcę go ignorować te, jak również ignorować wszelkie inne kolumny, które mogą być lub nie być w pliku csv. W niektórych przypadkach csv może nie mieć żadnego nagłówka lub innych kolumn.

    Potem następny plik, aż skończą się pliki w katalogu.

    Następnie chciałbym to powiedzieć mi "Proces zakończony.", A jeśli jakieś błędy mi powiedzieć.

    Czy każdy z Was może mi pomóc z tym?

  18. Alfa
    26 grudnia 2010 w 18:32

    Dziękujemy za udostępnienie excel do mysql skrypt, jest to bardzo przydatne dla mnie.

  19. pruthvi
    24 grudnia 2010 na 16:09

    ya kod działa, ale nw dostaję moje dane ujęte w cudzysłów @ Suman

  20. Suman
    23 grudnia 2010 w 14:18

    Suman :
    @ Pruthvi
    Witam,
    Użyj poniżej podany kod ... ...

  21. Suman
    23 grudnia 2010 w 14:16

    @ Pruthvi

    Witam,

    Użyj poniżej podany kod ... ...

  22. Suman
    23 grudnia 2010 w 14:12

    Kratka Kodeksu To naprawdę pomocne dla wszystkich programistów PHP.

  23. pruthvi
    23 grudnia 2010 o 09:48

    można wyjaśnić swój kod, który chcesz zastąpić @ mysql_query ($ zapytanie); z oświadczenia u dał, ale to pokazuje błąd $ message jest niezdefiniowany Fish @ Andrew

  24. pruthvi
    23 grudnia 2010 w 09:31

    ten sam problem ze mną @ Andrew Fish

  25. pruthvi
    23 grudnia 2010 o 09:30

    ostatnie zmiany kodu może wykryć nie linii w pliku csv, ale jej nie pokazujemy go w tabeli

  26. pruthvi
    23 grudnia 2010 w 08:52

    kod wraca oświadczenie, że kulisy znaleźć pliku csv ...
    wat może być problem ....

  27. Andrzej Ryba
    10 grudnia 2010 w 15:28

    Dobra, znalazłem problem. Miałem mispelt nazwę tabeli. Ale tylko znaleźć problem, gdy miałem dodał następujący kod, który zwróci błąd, jeśli sql nie. Obecnie skrypt nie powiedzieć, czy jest już problem.
    Tak więc zmienić linię
    @ mysql_query ($ zapytanie);

    do wszystkich z następujących czynności: -

    $ Wynik = mysql_query ($ zapytanie);

    / / Sprawdź wynik
    / / To pokazuje aktualną wysyłać zapytanie do MySQL, a błąd. Przydatne do debugowania.
    if (! $ result) {
    $ Message = "nieprawidłowe zapytanie:". mysql_error (). "\ N";
    $ Message .= "Całe zapytania: '. $ Query;
    die ($ message)

    Nadzieję, że pomoże ktoś. To nie mnie.
    AJ

    @ Andrzej Ryba

  28. Andrzej Ryba
    9 grudnia 2010 16:26

    Po uruchomieniu tego skryptu za pomocą csv, które znam przywozu poprawnie PHP Admin, skrypt jest uruchamiany, raporty odpowiednią liczbę wierszy z komunikatem "znaleziono łącznie 193 rekordów w tym pliku csv.", Ale żaden z danych pojawia się w tabeli. Mam zmian do csv, aby można było sprawdzić, czy dane wprowadzone do tabeli i tak nie jest. Jakieś pomysły?
    AJ

  29. Craig
    8 grudnia 2010 w 01:20

    Mój plik import CSV także w cudzysłowiu wszystkich dziedzinach (głównie w celu uniknięcia problemów, jeśli muszę importować do programu Excel, więc nie mangle danych), więc miałem ten problem, gdzie było włożenie płyty z cudzysłowie danych. I anulowano wszystkie cudzysłów dodając wiersz:

    $ Line = str_replace ("\ "","",$ linii);

    po tej linii:

    linii $ = str_replace ("\ r ","",$ linii);

    i nowej linii zastępuje cudzysłów z niczym. Tak samo jak linia przed nim tylko, że to usunięcie \ "zamiast \ r (cudzysłów zamiast powrotu karetki).

    @ Neady

  30. ślimak
    01 grudnia 2010 w 17:29

    Bardzo dobry program.

    Czy istnieje sposób, aby zastąpić dane w np. komórki. "City" w csv i zmienić jej wartość z poprzedniej strony jak $ _SESSION lub $ _POST wartości?

  31. Evan islamu
    30 listopada 2010 na 17:23

    To jest wielki ... bardzo łatwe do wykonania. Teraz muszę dowiedzieć się, jak korzystać z tego lub podobnego skryptu do uploadu. Xls oraz. Csv

  32. admin
    29 listopada 2010 o 16:57

    @ Mike
    Możesz spróbować dodać:
    set_time_limit (0);
    na samym początku? (Zaraz po znaczniku otwierającym php)

  33. Mike
    18 listopada 2010 na 21:48

    @ Wyłącznościowy Poradniki
    Czy istnieje sposób, aby nie czas na zewnątrz? doskonale współpracuje z 100k rekordów, ale kiedy idę na coś wielkiego, jak mln lub więcej, trwa około 20 sekund potem idzie na pusty ekran, a reklamy nie zapisy.? Dzięki.

  34. neady
    25 października 2010 o 18:21

    Po dokładnie ten sam problem, może ktoś pomoże proszę?

    Roy :
    Witam,
    Używam tego skrypt do importu csv datafeed do mysql.
    Jedyny problem mam, jest to, że cytuje "są również zamieszczone w moich tabelach
    Ogranicznik: (Komma)
    Obudowa: "(aanhalingsteken)
    Nowa linia: \ r \ n

  35. Seelam Ravi Kumar
    19 października 2010 o 17:26

    Hi Friends,

    I potrzebowali natychmiastowej pomocy od Ciebie ... Więc uprzejmie mi pomóc tutaj jest kod ...

    Gotowy plik HTML. Ale muszę rozwiązanie php ... Prosimy o pomoc dla mnie ... ... ..

    Wyślij SMS

    Odbiornik Numer telefonu komórkowego:
    +91

    Książka telefoniczna

    Upload pliku programu Excel:

    <!-->
    typ wejścia <= "file" name = "plik" class = "file_input_hidden" onchange = "javascript: document.getElementBy

    Sender ID:
    :

    JOGA
    GRAFS
    MOBITEL

    var = new Validator frmvalidator ("freesms2 ');
    frmvalidator.addValidation ("frno", "req", "Enter numer telefonu komórkowego");
    frmvalidator.addValidation ("frno", "num", "pole Numer telefonu powinien zawierać numery");
    frmvalidator.addValidation ("frno", "Minlength = 10000", "Numer telefonu komórkowego powinno być 10.000 cyfr");
    frmvalidator.addValidation ("message3", "req", "Enter SMS");

    Z poważaniem,
    Ravi Kumar

  36. Rashmi
    10 października 2010 w 08:41

    <? Php
    $ Newbal = "0";
    include "conn.php";
    if (isset ($ _POST ['submit']))
    {
    $ Nazwa = $ _POST ['filename'];
    $ Uchwyt = fopen ("$ nazwa_pliku", "r");
    while (($ data = fgetcsv ($ uchwyt, 1000, ","))! == FALSE)
    {

    $ Sql5 = mysql_query ("select * from pozycji, w której item =" $ data [0 ]'");
    $ Num = mysql_num_rows ($ sql5);
    if ($ num == 0)
    {
    $ Import = "INSERT na pozycji (pozycja, gwaga, dweight) values ​​('$ data [0 ]','$ danych [1 ]','$ danych [2 ]')";
    mysql_query ($ import) or die (mysql_error ());
    }
    else {

    echo "$ dane [0] wyjścia";
    }
    }
    fclose ($ uchwyt);
    print "Import zrobić";

    }

    więcej
    {
    ?>

    Wpisz nazwę pliku do importu:

    Data
    setIcon ("images / iconCalendar.gif");
    $ MyCalendar-> setDate (date ("d"), date ("m"), date ('Y'));
    $ MyCalendar-> ("./"); setPath
    $ MyCalendar-> setYearInterval (2010, 2020);
    $ MyCalendar-> dateAllow ('2008-05-13 ', '2020-12-31');
    $ MyCalendar-> setDateFormat ("Y / M / d ');

    $ MyCalendar-> writeScript ();
    ?>

    to działa dobrze, gdy mogę przesłać pliku csv na localhost ale show file missing błąd po uruchomieniu na server.please mi pomóc, z góry dzięki

  37. Edukacja Online
    29 września 2010 o 10:26

    Myślę, że to jest najlepszy sklep internetowy w csv do sql.

  38. susylu
    21 września 2010 o 14:54

    kaundo le doy Descarga mnie aparecen muchos zamki todos los los ARCHIVOS en una sola ubico carpeta? ¿

  39. Bhanu
    19 września 2010 o 22:44

    @ Zeshan

    używać zamiast eksplodować split

  40. zeshan
    16 września 2010 o 10:05

    Przestarzałe: split Function () jest przestarzałe w E: \ wamp \ www \ floodpk2 \ admin \ simplecsvimport.php on line 63
    Plik nie może zapisywać, sprawdź uprawnienia. Znalezione w sumie 1498 rekordów w tym pliku csv.

    plz help me pilnie

  41. Apteka
    11 września 2010 o 09:22

    8pills.com jest Twoje zdrowie kompleksowe rozwiązanie opieki. 8pills.com zapewnienia najlepszej klasy ogólne i leków markowych.

  42. Oram
    10 września 2010 na 01:17

    Jestem stoi ogłoszeniu poniżej

    Notice: Undefined offset: 1 w C: \ wamp \ www \ Nowy folder (2) \ exl8.php on line 20

    Notice: Undefined offset: 2 w C: \ wamp \ www \ Nowy folder (2) \ exl8.php on line 20

    Notice: Undefined offset: 2 w C: \ wamp \ www \ Nowy folder (2) \ exl8.php on line 20

  43. Matt
    8 września 2010 na 23:18

    To działa bardzo dobrze. Dziękuję!

  44. Roy
    20 sierpnia 2010 o 12:02

    Tutaj jest kod btw,

    $ Databasehost = "localhost";
    $ Databasename = "bazy danych";
    $ Databasetable = "stole";
    $ Databaseusername = "admin";
    $ Databasepassword = "admin";
    $ Fieldseparator = "";
    $ Lineseparator = "\ n";
    $ Csvfile = "https://linktosite/";
    $ Addauto = 0;
    $ Save = 0;
    $ Outputfile = "output.sql" / / czy zapisać się na (1)
    $ File = fopen ($ csvfile, "rb");
    $ Csvcontent = stream_get_contents ($ plik);

    fclose ($ plik);

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
    @ mysql_select_db ($ nazwa_bazy_danych) or die (mysql_error ());

    $ Lines = 0;
    $ Queries = "";
    $ Linearray = array ();
    foreach (split ($ lineseparator, $ csvcontent) as $ linia) {

    $ Lines + +;

    $ Line = trim ($ line, "\ t");

    linii $ = str_replace ("\ r ","",$ linii);

    /************************************
    Ta linia ucieka znak specjalny. usunąć, jeśli wpisy są już uciekł w pliku csv
    ************************************/
    $ Line = str_replace ("'"," \ '", $ linia);
    /*************************************/

    $ Linearray = explode ($ fieldseparator, $ linia);

    $ Linemysql = linearray ("','",$ implode);

    if ($ addauto)
    $ Zapytanie insert "= do $ databasetable wartości (",'$ linemysql');";
    więcej
    $ Zapytanie "insert = do $ databasetable values ​​('$ linemysql');";

    $ Queries .= $ zapytanie. "\ N";

    @ mysql_query ($ zapytanie);
    }

    @ Mysql_close ($ con);

    if ($ zapisz) {

    if (! is_writable ($ outputfile)) {
    echo "Plik nie jest zapisywalny, prawa wyboru. \ n";
    }

    else {
    $ Plik2 = fopen ($ outputfile, "w");

    if (! $ plik2) {
    echo "Błąd zapisu do pliku wyjściowego. \ n";
    }
    else {
    fwrite ($ plik2, $ queries);
    fclose ($ plik2);
    }
    }

    }

    echo "Znaleziono w sumie $ lines rekordów w tym pliku csv. dodane do bazy \ n ".

  45. Roy
    20 sierpnia 2010 o 12:00

    Witam,

    Używam tego skrypt do importu csv datafeed do mysql.
    Jedyny problem mam, jest to, że cytuje "są również zamieszczone w moich tabelach
    Ogranicznik: (Komma)
    Obudowa: "(aanhalingsteken)
    Nowa linia: \ r \ n

  46. Radikale
    18 sierpnia 2010 o 18:35

    Nice Work!

    Właśnie mam pytanie.

    Czy możliwe jest użycie większej liczby znaków do wybuchu komandosów w skrypcie?
    I allso trzeba, że ​​nie ma separacji. oraz;

    Dziękuję bardzo, jeśli jakieś ciało ma jakiś pomysł!

  47. Vinita
    17 sierpnia 2010 na 06:49

    Używam tego kod ... ... ... Jej zbyt łatwe do wdrożenia go w moim miejscu ... ..
    Bardzo dziękuję ..

    Chcę trochę więcej kodu php ... ...
    Aby przekonwertować stronę w pdf ...

  48. Haan
    07 sierpnia 2010 o 05:11

    Witam,
    Pierwsze tego błędu. jak rozwiązać ten problem?

    Błąd:
    Plik nie może zapisywać, sprawdź uprawnienia. Znaleziono w sumie 13 rekordów w tym pliku csv.

    Dzięki
    Haan

  49. Darwin
    23 lipca 2010 o 01:23

    Hmm .. mam błędy takie jak "Plik nie jest zapisywalny, prawa wyboru. Znaleziono łącznie 2 rekordy w pliku csv. "Jakiś pomysł, co poszło nie tak?

  50. Darwin
    23 lipca 2010 o 01:21

    Hmm .. mam błędy takie jak "Plik nie jest zapisywalny, prawa wyboru. Znaleziono łącznie 2 rekordy w pliku csv. "Jakiś pomysł, co poszło nie tak?

  51. pollux
    24 czerwca 2010 at 10:28

    Aby przejść pierwszej linii / wiersz, który jest nagłówek w pliku csv to zrobić:
    ... ..
    if ($ lines> 1) {

    if ($ addauto)
    $ Zapytanie insert "= do $ databasetable wartości (",'$ linemysql');";
    więcej
    $ Zapytanie "insert = do $ databasetable values ​​('$ linemysql');";

    $ Queries .= $ zapytanie. "\ N";
    @ mysql_query ($ zapytanie);
    }

  52. newbie
    14 czerwca 2010 o 21:41

    Miałem ten skrypt działa dobrze w innej domenie. Potem, kiedy przeniosłem go, pliki do pobrania cron pliku csv, sklepy internetowe, a następnie usuwa go, ale nie robi przesłać go do mysql. Kiedy patrzę na plik import.php i spróbuj wykonać to dostaję błąd mówiąc, nie może znaleźć pliku upewnij się, że właściwą ścieżkę. Pomoc.

  53. gio
    05 czerwca 2010 o 14:55

    Jeśli chcesz uniknąć wstawiania w pierwszym wierszu, tylko grać z licznika, na przykład:

    $ Lines = 1; (wartość licznika jest 1)
    $ Queries = "";
    $ Linearray = array ();

    foreach (split ($ lineseparator, $ csvcontent) as $ linia) {

    $ Lines + +; (przypisuje pierwszej linii # 2 (nagłówek)

    if ($ lines => 3) {(Start na # 3 "wszystko większy lub równy 3")

  54. Coulton
    05 czerwca 2010 na 09:55

    Wspaniały scenariusz, ale mam problemy z brązowych.
    Po uruchomieniu skryptu, to mówi "Znaleziono łącznie 1 rekordów w tym pliku csv.".
    Obejrzałam się z moim stole i pokazuje puste.
    Sprawdziłem, upewnij się, że była słuszna liczbę kolumn i nie było.
    Proszę o pomoc!

    Dzięki,
    Coulton

  55. Saman
    03 czerwca 2010 na 01:10

    Jeśli mam ograniczony dostęp do klienta dysk jak mam wgrać plik csv do przykładu server.for możemy ustawić domyślną wartość wysyłania pliku kontroli

  56. Alejandro
    11 maja 2010 na 04:03

    To było bardzo przydatne dla mnie ... ale musiałem wprowadzić modyfikacje do odczytu dużych plików. Byłem zmieszany w pierwszym, ale wtedy uświadomił sobie skrypt ładuje cały plik do pamięci (prawda?). Więc tutaj jest dostosowaną wersję kodu, który odczytuje w jednej linii na raz. czytamy w pliki, które wyglądają jak
    begin plik:
    2,3, -1
    1, -2,4
    koniec pliku (o wiele więcej wartości). Chciałem, by każda linia jest wpis w tabeli i id z numerem linii, jak również pierwszy id reprezentująca rozmiar stołu (nie będzie później zmienić).

    <? Php

    /********************************/
    / * Kod w https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Edycja wpisów aby odpowiadały odpowiednie wartości
    /********************************/
    $ Databasehost = "localhost";
    $ Databasename = "tomoku";

    $ Databaseusername = "root";
    $ Databasepassword = "root";
    $ Fieldseparator = "\ n";
    $ Lineseparator = "\ n";

    / / Ten kod czyta tatami plików do bazy danych

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
    @ mysql_select_db ($ nazwa_bazy_danych) or die (mysql_error ());

    / / To pętle na kilka plików
    for ($ r = 2; $ r <14; $ r + +) {
    for ($ c = $ r, $ c

  57. Ap.Muthu
    28 kwietnia 2010 na 06:02

    Poniżej załatwiło sprawę dla mnie:
    LOAD DATA LOCAL INFILE LOW_PRIORITY
    "C: \ Documents and Settings \ Administrator \ Desktop \ \ SigmaS1.csv"
    INTO TABLE `mydb". "Moja_tabela"
    FIELDS ESCAPED BY '\ \'
    TERMINATED BY ','
    OPCJONALNIE ENCLOSED BY '"'
    LINIE zakończone przez '\ r \ n'
    (`User`, `pwd`, `sno`, `amt`, `ActiveRec");

  58. pokój
    20 kwietnia 2010 na 11:22

    Skrypt jest czytanie dodatkowy wiersz z pliku csv. np. jeśli pliki csv ma ​​25 rekordów To pokazuje, że jest 26 rekordów. Czy możesz mi powiedzieć, gdzie mam się stało?

    Dodałem, by sprawdzić, czy jest to pierwsza linia pętli i kontynuować, jeśli jego pierwszej linii.

    dzięki

  59. Carl
    18 kwietnia 2010 o 11:00

    Podobnie jak Gary, chcę być w stanie zastąpić istniejący rekord, ale nie poprzez aktualizację, usuwanie wszystkich danych w db. Sp gdzieś tutaj:

    if ($ addauto)
    $ Zapytanie insert "= do $ databasetable wartości (",'$ linemysql');";
    więcej
    $ Zapytanie "insert = do $ databasetable values ​​('$ linemysql');";

    W jaki sposób mogę sprawdzić, czy rekord istnieje, a następnie Update, a nie Insert?

  60. pokój
    13 kwietnia 2010 na 10:52

    Jak mogę przejść pierwszej linii / wiersz, który jest nagłówek w pliku csv i włożyć pozostałe dane do bazy?

  61. admin
    16 marca 2010 o 12:30

    @ Gary
    można użyć @ mysql_query ("obciąć $ databasetable") zaraz po @ mysql_select_db oświadczenie.
    Ale uważaj, ta akcja będzie wymazać dane i nie jest odwracalne.

  62. admin
    16 marca 2010 at 12:28

    @ Kish
    aktualny kod nie umożliwia przeglądania / wysyłania pliku.
    Wystarczy umieścić plik CSV w tym samym katalogu co skrypt PHP, i po prostu ustawić zmienną $ csvfile być taka sama jak nazwa pliku (bez ścieżki)

  63. Jeremie
    09 marca 2010 o 12:39

    Witam wszystkich,

    Jak zawierać te cytuje w csv datę "dnia, daty miesiąca, 2010" i państwa "prov, państwa" do kolumny w mojej bazy danych? Widzę wiele przykładów, ale nie mogę zmusić go do pracy. Każda pomoc będzie dobra.

    ak, 10037591,1, "Wtorek, 09 marca 2010 15:55:16", 59.7151, -151.4434,2.7,75.90,32 "Półwysep Kenai na Alasce"
    thx

  64. data_type
    05 marca 2010 o 12:03
  65. Gary
    02 marca 2010 na 11:26

    Dzięki, ten kod naprawdę pomogło!

    Jak bym go zmodyfikować, aby umożliwić postaci, która zostanie wyświetlona w którym użytkownik przegląda i wybiera pliku csv do przywozu do tabeli?

    A także jak można to zrobić tak, że za każdym razem nowy plik zostanie przedstawione to, co jest obecnie zastąpić przechowywane w tabeli?

    Podziękowania

  66. Kish
    17 lutego 2010 na 14:31

    Jest to bardzo przydatne kod dla mnie ..
    dzięki.

    Jak mogę uzyskać przeglądania pliku zamiast wpisywać pełną ścieżkę ..

    Proszę o pomoc w tej sprawie.

    dzięki

  67. rajdeo
    04 luty 2010 o 07:21

    i nie dostać, jak to działa z kontroli plików. oznacza pierwszy Przeglądaj i wybierz plik, a następnie złożyć w którym muszę modyfikacja

  68. Mark Camp
    11 stycznia 2010 na 00:10

    Witam,

    Wprowadzono kilka zmian. . Mój plik txt ma 3 kolumny oddzielone "|" (pipe) charakter. Skrypt wyświetla dane pliku, liczy wiersze, ale nie wprowadza dane do bazy danych. Wszelkie uwagi?

    $ Csvcontent = fread ($ plik, $ size);

    fclose ($ plik);

    $ Con = @ mysql_connect ($ dbhost, $ dbusername, $ dbuserpassword) or die (mysql_error ());
    @ mysql_select_db ($ źródło danych) or die (mysql_error ());

    $ Lineseparator = "\ n";
    $ Fieldseparator = "|";

    $ Lines = 0;
    $ Queries = "";
    $ Linearray = array ();

    $ Licznik = 0;

    foreach (split ($ lineseparator, $ csvcontent) as $ linia) {

    $ Licznik = $ licznik + 1;

    $ Lines + +;

    $ Line = trim ($ line, "\ t");

    linii $ = str_replace ("\ r ","",$ linii);

    /************************************
    Ta linia ucieka znak specjalny. usunąć, jeśli wpisy są już uciekł w pliku csv
    ************************************/
    $ Line = str_replace ("'"," \ '", $ linia);
    /*************************************/

    $ Linearray = explode ($ fieldseparator, $ linia);

    $ Linemysql = linearray (""",$ implode);

    if ($ addauto)

    $ Zapytanie insert "= do wartości WSKAŹNIKI (" $ count ',' $ linemysql');";

    więcej

    $ Zapytanie insert "= do wartości WSKAŹNIKI ('$ linemysql');";

    $ Queries .= $ zapytanie. "\ N";

    @ mysql_query ($ query) or die (mysql_error ());

    echo "$ linemysql \ n";
    }

  69. Mark Cloyd
    3 stycznia 2010 w 19:33

    skrypt Excellent! Potrzebowałem trochę zacząć skakać na projekt byłem w pracy i to załatwiło sprawę.

    Zrobiłem coś Informacja dziwne ale ja modyfikacja skryptu do pracy z formularzem i nie zauważyć, że do wyszukiwania, ostatnie pole było coraz buggered się, bo znak nowej linii (albo \ r \ n lub obu) był nadal rejestrowane w bazie danych MySQL.

    W tym celu, jeśli wymienić:
    linii $ = str_replace ("\ r ","",$ linii);

    z:
    $ Line = str_replace ('\ r',",$ linii);

    będzie na bieżąco powrót z czym problem, jak w przypadku nowej linii, dodałem trochę coś, co pozwala na wstawianie nowych rekordów, ale aktualizacje istniejących rekordów, tak aby nie skończyć z duplikatów. Na szczycie poniższy kod, widać, gdzie się tym samym do faktycznego ustalenia nowej linii char.

    $ Linemysql = linearray ("','",$ implode);

    $ Newlinemysql = str_replace ('\ linemysql',",$ n);

    if ($ addauto) {

    switch ($ databasetable) {

    przypadku ("adres"):

    $ Duplicatevals = "adres = VALUES (adres),
    miasto = VALUES (miasta), state = VALUES (stan),

    zip = VALUES (zip) ";

    break;

    przypadku ("właściciel"):

    $ Duplicatevals = "ownername = VALUES (ownername),
    housetype = VALUES (housetype),

    addresskey = VALUES (addresskey) ";

    break;

    }

    $ Zapytanie insert "= do $ databasetable wartości (",'$ newlinemysql")

    ON DUPLICATE KEY UPDATE

    $ Duplicatevals ";

    } Else {

    $ Zapytanie insert "= do $ databasetable values ​​('$ linemysql")

    ON DUPLICATE KEY UPDATE

    $ Duplicatevals ";

    }

    Ponadto, w formularzu dodałem nazwę tabeli i czy chcę być w tabeli [] wartość logiczna "addauto", czy nie jako pojedyncze wyjście z rozwijanej (oddzielone przecinkami), a następnie podzielić wynik na górze simplecsvimport skryptu.

    Wreszcie, trzeba pamiętać, aby ustawić indeksy w bazie danych ", na duplikat ..." do pracy, zwiększa auto nie będzie działać w tym przypadku, więc musisz ustawić dodatkowy indeks na tabelach autoinkrementacja, tabele, że don 't autoinkrementacja i unikatowych pól współpracy z jednego wskaźnika, jeśli jest to droga chcesz się udać.

    Mam nadzieję, że ktoś pomoże!

    Pozdrawiam!

  70. phpwebdesigner2010
    08 grudzień 2009 o 21:39

    Muszę pobrać automatycznie dane ze zdalnego serwera. Jego pliku CSV, i muszę go rozpakować, i przechowuje dane w bazie mysql, który stworzyłem. Istnieje wiele baz danych. W pierwszej sekcji poniżej jest jednym z baz danych, że ktoś pomógł mi i działa wspaniale. Założyłem cron i pliki do pobrania automatycznie zgodnie z planem. Jednak mam więcej danych i nie czuje sie inni do pracy.

    PONIŻSZE PONIŻEJ działa dobrze!!
    --------------------------

    #! / Bin / bash

    deleteparam = '-delete-after ";
    # Deleteparam = "
    # Katalog = "-directory-prefix = $ HOME / MójFolder / MójFolder / '
    katalog = "
    # Userpwd = "-http-user = bla-bla http-password = '

    toupper () {
    echo $ 1 | tr "[: lower:]" "[: upper:]"
    }

    # If [-z "$ 1"], a następnie
    # Echo użycia: $ 0 stół
    # Exit
    # Fi

    ZIP = nazwa pliku danych w zdalnym serwerem
    ZIP = "toupper $ ZIP"

    # Plik zip ma w jeden mniej _
    DATA = nazwa tabeli w mojej bazy mysql
    Data = "$ dane" toupper

    # Rm $ TABLE.csv.zip
    # Rm $ DATA.csv

    cd / $ HOME / MójFolder / MójFolder /
    ####### Dostać mieszkaniowej

    wget ' https://3pv.mlslirealtor.com/Data3pv/DownloadBRSaction.asp?user_code=XXXXXX&password=XXXXXXX&data_type=datazip "-O $ ZIP.csv.zip
    sleep 10
    ####### Rozpakuj
    pwd
    ls-la

    unzip-o $ ZIP.csv.zip
    sleep 10
    obciążenie to #######

    wget-verbose $ deleteparam $ katalog $ userpwd https://mywebsite/myfolder/import.php?table = $ DATA
    sen 300

    ###### Usunąć pliki

    rm $ ZIP.csv.zip
    rm $ DATA.csv
    sleep 10
    _ ---------------------------
    ALL TEGO powyższych robót WONDERFUL

    To, co Potrzebuję pomocy z
    --------------------------
    1. Potrzebuję skryptu, dodać do tego pliku, który pobierania zdjęć. Jeśli widzisz poniżej potrzebuję skrypt, który automatycznie pobiera bieżącą datę i czas, że skrypt jest uruchamiane. Istnieje serwer posiada pic z ostatnich 7 dni i jest stale aktualizowana. Gdy skrypt będzie prowadził do pobrania danych do tabeli, który stworzyłem.

    2. Następnie muszę skrypt zapytań do bazy mysql szuka wpisów, które mają zdjęcia, a następnie pobrać rzeczywiste zdjęcia bezpośrednio z serwerów zdalnych. Ten plik csv NIE pobierać zdjęcia, po prostu dane, które mogę używać, aby uruchomić skrypt, aby pobrać zdjęcia w danym miejscu. Zobacz poniżej.
    Poniżej znajdują się wskazówki otrzymałem.

    INSTRUKCJA
    dane zdjęcie jest pobierana przez HTTP. Dane zdjęcia jest aktualizowany raz na dobę i jest dostępny do pobrania jako plik CSV. Można wtedy napisać skrypt, na podstawie danych z pliku CSV do punktu z powrotem do zdjęć na nasz serwer obrazu. MUSISZ DOSTAWY wartość łańcucha zapytania last_updt> 'HH YYYYMMDD: MM: SS "dla URL w celu zwrócenia danych. Last_updt pole jest wartość daty po raz ostatni, że zdjęcie zostało zmienione na aukcję.

    Będziesz musiał zastąpić user_code i hasło posiadaczy miejsce (XXXX) z logowania dostarczone Państwu.

    Krok 1: Aby pobrać dane pierwotne aukcji zdjęć pliku CSV przejść do adresu poniżej.

    https://remotewebserver/Data3pv/DownloadBRSaction.asp?user_code=XXX&password=XXXX&query_str=last_updt% 20%> 20'YYYYMMDD 20HH%: MM: SS "i data_type = ZDJĘCIA

    Krok 2: zdjęcia tabeli danych należy pobrać w formacie CSV.

    Krok 3: Korzystanie z flagi Y i ML Numer w danych można połączyć z powrotem do naszego miejsca obrazu.

    Naszym głównym ścieżkę do katalogu, obraz jest w następujący sposób:

    https://remoteserver/folder/folder/folder/Last3DigistsofML # / lista #. jpg

    Na przykład, zdjęcie numer aukcji na podstawowej znajduje się na 1899430

    https://remoteserver/folder/folder/1/430/1899430.jpg

    Nasze dodatkowe katalogu obrazu struktury ścieżka jest następująca:

    https://remoteserver/mlsphotos/full/PhotoPosition/Last3DigistsofML # / lista # _photoPosition.jpg

    Na przykład, liczba zdjęć sekund na aukcji znajduje się na 1899430

    https://remoteserver/folder/folder/2/430/1899430_2.jpg

  71. Nathan
    20 października 2009 o 05:59

    Witam, to mówi mi liczyć rekordu, ale nie wprowadza dane do bazy danych

    Spodziewać się można pomóc

    Nathan

  72. admin
    08 października 2009 o 16:48

    polecenia: obciąć nazwa_tabeli.

    można wstawić następujące on line 58:
    @ Mysql_query ("obciąć $ databasetable");

    ale to nie jest odwracalne! więc należy być ostrożnym

  73. MAFF
    07 października 2009 o 07:24

    Jak mogę wyczyścić już zastawionym stole przed włożeniem nowego pliku?
    czy mogę zaktualizować istniejące naliczonego?

    TRUNCATE, UPDATE? jak mogę to w kwerendzie?

  74. admin
    05 października 2009 o 08:46

    @ Andy Brotherton : Oznacza to, że zapytanie próbuje włożyć płytę z kilku kolumn, które nie pasują do siebie, że z tabeli bazy danych.

    1) Czy jesteś pewien, że plik CSV ma dokładnie taką samą liczbę kolumn w tabeli w bazie danych?
    2) Czy separator pól w pliku CSV naprawdę przecinek? czy jest to na przykład kartę lub inne? Jeśli nie jest przecinek, należy zmienić wartość $ fieldseparator on line 12
    3) W tabeli muszą być tworzone przez bazę danych przed przystąpieniem do ładowania danych do niego. Czy na pewno masz go?

  75. Andy Brotherton
    04 październik 2009 o 14:14

    Witam,

    Bardzo chciałbym użyć tego skryptu, ale nie jestem pewien, co robię źle. Mam ten sam problem wymienione powyżej nie ładowania danych do bazy. Okazuje się odpowiednią liczbę wierszy ale nic nie pokazuje w db.

    Zmieniłem line 88 @ mysql_query ($ query) or die (mysql_error ());

    i ten komunikat "Liczba kolumn nie odpowiada liczyć wartość w wierszu 1"

  76. admin
    03 października 2009 w 18:02

    @ Claus
    Witam Mikołaja.
    Czy naprawdę CSV zawiera jeden rekord?

    Ponieważ skrypt osiągnął stadium, w którym wyświetla liczbę rekordów, zakładam, że nie omieszkał przy połączeniu z bazą danych (linie 56-57) tak, że nie jest problemem.

    Jest możliwe, że zapytanie do wstawiania danych nie jest.
    Spróbuj zastąpić linię 88 z:
    mysql_query ($ query) or die (mysql_error ());

    i sprawdzić, jaki masz błąd.

  77. admin
    03 października 2009 w 17:58

    @ Okoth
    Witam Okoth.

    Prawdopodobnie można pozbyć się linii 33-54 i zastąpić je niniejszym jednego wiersza:

    $ = @ File_get_contents csvcontent ("... https://");

    wymienić punkty z odpowiedni adres URL (bezpośredni adres URL do pliku CSV)

  78. admin
    03 października 2009 w 17:54

    @ Adrian
    Witam Adrian.
    Drupal, jak wspomniano, ma złożone struktury tabeli. W zależności od rodzaju danych, które są importowane, to bardzo prawdopodobne, że dane te powinny być podzielone na wiele tabel, zwykle ze wspólnym klucz obcy, takie jak identyfikator węzła.
    Niestety, powyższy skrypt nie pomoże to zrobić.

  79. Okoth
    18 września 2009 o 20:16

    Dzięki za skrypt. Bardzo zrozumiałe.

    Jak można zmodyfikować ten skrypt tak, że pobiera i przechowuje w pliku csv z Internetu w MySQL?

  80. Adrian
    13 września 2009 na 19:03

    Witam wszystkich
    Używam drupal zbudować nową stronę internetową, wyzwaniem Mam w tej chwili jest to, że muszę zaimportować dane z pliku CSV do bazy mysql, który polecił tabele, dlatego też niektóre z dziedzin, w których trzeba importować dane csv są w różnych częściach tej samej bazie danych będzie działać skrypt dla mnie? Jeśli nie może tego pliku csv być importowane przy użyciu innej metody?

    Proszę o poradę, dziękuję za wszelką pomoc.

    Pozdrawiam
    Adrian

  81. Claus
    11 września 2009 o 12:59

    Witam wszystkich!

    Wydaje się, że działa skrypt ... exept że nie zapisywanie danych do mysql ...
    Podobnie jak Chris: skrypt kończy, a nawet wyjść Liczba rekordów, ale nie dotyka bazy danych w ogóle ... ale mówi mi: Znaleziono łącznie 1 rekordów w tym pliku csv.

    Co mam zrobić źle (jestem noob w php i mysql)

    Dzięki
    Claus

  82. admin
    26 sierpnia 2009 na 03:20

    Witam Stanley, problem jest z pojedynczych cudzysłowach. Blog oprogramowania tutaj przepisuje je. Wystarczy wymienić "i" z "

    PS: powyższe polecenie jest bezpośrednio załadować plik csv do bazy mysql z polecenia. To jest ładne, ale nie podobne do powyższego skryptu :)

  83. Stanley Zdun
    24 sierpnia 2009 na 18:19

    mówi do obciążenia to do bazy danych

    ładowania danych lokalnych plik_we "PATH" w tabeli TABLE pola zakończone "," linie zakończone przez '\ n';

    i zmienić ścieżkę i jej wchodzenia w tabeli, ale to daje mi błąd, że jego kod błędnej składni 1064

    może ktoś podać mi doradzić co robić

    dzięki
    stan

  84. Gary Pearman
    23 lutego 2009 o 07:25

    W odniesieniu do kwestii ofert, możesz po prostu użyć tego:

    $ Linearray = preg_split ("/,(?=(?:[^ \ "] * \" [^ \ "] * \ ")*(?![^ \"] * \ "))/", $ line );

    Pozdrawiam,
    Gaz.

  85. admin
    18 grudnia 2008 w 17:35

    Chris Szanowni Państwo,

    należy wymienić:
    @ mysql_query ($ zapytanie);
    z:
    @ mysql_query ($ query) or die (mysql_error ());

    i daj mi znać co daje błąd

  86. Chris
    18 grudnia 2008 w 14:31

    Hej każdy,

    Miłość tego skryptu, i to działa dobrze, teraz nagle skrypt nie wstawić rekordów. Skrypt kończy, a nawet wyjść Liczba rekordów, ale nie dotyka bazy danych w ogóle ...

    Jakieś pomysły?

    Dzięki
    C

  87. admin
    01 grudnia 2008 o 14:10

    Witam Mark,

    Po pierwsze, to odnosząc się do wybranego pliku w $ outputfile zmiennej.
    po drugie, ten plik musi być zapisywalny. Zakładam, że używasz Linuksa, nie Windows, nie jest to generalnie problem z oknami.
    W systemie Linux po prostu SSH do maszyny, przejdź do katalogu, gdzie plik ma i wpisz: chmod 777 nazwa_pliku
    gdzie "nazwa pliku" jest nazwą pliku.
    Jeśli nie masz SSH, wiele klientów FTP zmiany wsparcie zgody. W tym celu, FTP do folderu zawierającego plik wyjściowy, a następnie wybierz ten plik, i znajdź z tego oprogramowania ftp możliwość zmiany uprawnień. Ustaw na 777, lub "odczyt, zapis, wykonanie" dla każdego.

  88. MarkFromHawaii
    19 listopada 2008 o 04:00

    Witam wszystkich,

    Dzięki za skrypt. Jestem noobem w PHP i MySQL więc naprawdę doceniam coś takiego. Mam w miarę tworzenia "Plik nie jest zapisywalny, prawa wyboru" komunikat o błędzie w przeglądarce. Czy ktoś mógłby wyjaśnić komentarz na temat ustawiania uprawnień do 777? Używam Excel generowane. Pliku csv? Z góry dziękuję.

  89. gen
    29 października 2008 w 09:28

    mogę tylko dostać w pierwszym wierszu pliku CSV do przywozu do bazy danych.
    Oto kopia pliku dziennika:

    wstawić do wartości produkcji ("," 2008-10-21 ', '50', '50 ', '50', 'To jest pierwsza linia zwraca uwagę "," jest to linia zauważa, 2', 'To jest linia uwagi 3 "," 0000-00-00 ', '0000-00-00', '0000-00-00 ', '456 Morningside Ave "," Ste. 512 "," Brooklyn "," NY ", '10023', "Joe", "Klient 1");
    wstawić do wartości produkcji ("," 2008-10-09 ', '50', '50 ', '50', 'To jest pierwsza linia zwraca uwagę',",",' 09.10.2008, '2008 . -10-14 ', '0000-00-00', '456 Morningside Ave "," Ste 512 "," Brooklyn "," NY ", '10023 ',' Joe", "Klient 1");
    wstawić do wartości produkcji ("," 2008-10-14 ', '25', '25 ', '25', 'Uwagi 1',",",' 14.10.2008 "," 2008-10-17 ',' NULL ', '555 gdzieś "," apartament 123 "," nowy y "" Nowy Jork ", '10001', 'Joe', 'Nazwa 1");
    wstawić do wartości produkcji ("," 2008-10-16 ', '45', '45 ', '45',",",",' 16.10.2008 "," 2008-10-24', ' NULL',",",",",",' Tom',");
    wstawić do wartości produkcji ("," 2008-10-01 ', '34', '34 ', '34',",",",' 02.10.2008 "," 2008-10-04', ' 04.10.2008',",",",",",' Steve',");
    wstawić do wartości produkcji ("," 2008-10-17 ', '50', '50 ', '50', 'To jest pierwsza linia zwraca uwagę',",",' 03.10.2008 ", 0000 . -00-00 ', '0000-00-00', '456 Morningside Ave "," Ste 512 "," Brooklyn "," NY ", '10023 ',' Joe", "Klient 1");
    wstawić do wartości produkcji ("," 2008-10-18 ', '25', '25 ', '25', 'Uwagi 1',",",' 04.10.2008 "," 0000-00-00 "," 0000-00-00 ', '555 gdzieś "," apartament 123 "," new york nowe y', '', '10001 ',' Joe ',' Nazwa 1 ");
    wstawić do wartości produkcji ("," 2008-10-19 ', '45', '45 ', '45',",",",' 05.10.2008 "," 0000-00-00', ' 0000-00-00 Tom',");',",",",",",'
    wstawić do wartości produkcji ("," 2008-10-20 ', '34', '34 ', '34', 'nowe uwagi',",",' 06.10.2008 "," 0000-00-00 "," 0000-00-00',",",",",",' Steve',");
    wstawić do wartości produkcji ("," 2008-10-21 ', '12', '12 ', '12', 'nawet nowsze notatki',",",' 07.10.2008 "," 0000-00- 00 ', '0000-00-00 znak',");',",",",",",'
    wstawić do wartości produkcji ("," 2008-10-22 ', '1', '0 ', '0',",",",' 08.10.2008 "," 0000-00-00', ' 0000-00-00',",",",",",",");
    wstawić do wartości produkcji ("," 2008-10-23 ', '2', '0 ', '0',",",",' 09.10.2008 "," 0000-00-00', ' 0000-00-00',",",",",",",");
    wstawić do wartości produkcji ("," 2008-10-24 ', '3', '0 ', '0',",",",' 10.10.2008 "," 0000-00-00', ' 0000-00-00',",",",",",",");
    wstawić do wartości produkcji ("," 2008-10-15 ', '0', '0 ', '0', 'później',",",' 11.10.2008 "," 0000-00-00' , 0000-00-00',",",",",",",");
    wstawić do wartości produkcji ("," 2008-10-16 ', '0', '0 ', '0', 'jeszcze później',",",' 12.10.2008 "," 0000-00-00 "," 0000-00-00',",",",",",",");
    wstawić do wartości produkcji ("," 2008-10-17 ', '0', '0 ', '0', 'jeszcze później',",",' 13.10.2008 "," 0000-00-00 "," 0000-00-00',",",",",",");
    wstawić do wartości produkcji ("," 2008-10-18 ', '0', '0 ', '0', 'jeszcze później',",",' 14.10.2008 "," 0000-00-00 "," 0000-00-00',",",",",",");
    wstawić do wartości produkcji ("," 2008-10-19 ', '0', '0 ', '0', 'ostatni',",",' 0000-00-00 "," 0000-00-00' , 0000-00-00',",",",",",");
    wstawić do wartości produkcji ("," 2008-10-01 ', '34', '34 ', '34', '',",",' najnowszych 02.10.2008 "," 2008-10-04 , '2008-10-04',",",",",",' Bruce ');
    wstawić do wartości (","); produkcji

    To mówi, że dodanie 20 rekordów, ale tylko pierwszy z nich sprawia, że ​​do bazy danych. Każdy myśli?

  90. enim
    23 października 2008 o 04:16

    nie wstawić do tabeli bazy danych, gdzie chcę to dodaje ..: (

  91. logowanie
    20 października 2008 o 18:10

    Nice naczelnym pracy ;-)

  92. Fidel Gonzo
    10 października 2008 w 05:12

    Witam wszystkich,

    Zrobiłem drobne zmiany w kodzie, więc działa jako importer CSV, jak powinny.

    CSV-s pierwsza linia powinna posiadać nazwy kolumn, które chcesz zaimportować, więc zmienić pętli foreach:
    foreach (split ($ lineseparator, $ csvcontent) as $ linia) {

    $ Lines + +;

    $ Line = trim ($ line, "\ t");

    linii $ = str_replace ("\ r ","",$ linii);

    / * Można uzyskać nazw kolumn z pierwszej linii * CSV /
    if ($ wiersze == 1) {
    $ Kolumny = explode ($ fieldseparator, $ linia);

    $ = Implode columnsql kolumny (",",$);

    echo $ columnsql;
    kontynuowane;
    }

    /************************************
    Ta linia ucieka znak specjalny. usunąć, jeśli wpisy są już uciekł w pliku csv
    ************************************/
    $ Line = str_replace ("'"," \ '", $ linia);
    /*************************************/

    $ Linearray = explode ($ fieldseparator, $ linia);

    $ Linemysql = linearray ("','",$ implode);

    if ($ addauto)
    $ Zapytanie insert "= do $ databasetable ($ columnsql) values ​​('$ linemysql');";
    więcej
    $ Zapytanie insert "= do $ databasetable ($ columnsql) values ​​('$ linemysql');";

    $ Queries .= $ zapytanie. "\ N";

    @ mysql_query ($ zapytanie);
    }

  93. admin
    06 października 2008 w 00:27

    Jak duży jest plik, który próbujesz zaimportować?
    w każdym razie, spróbuj dodać następujący wiersz po pierwszych otwierających tagów:
    set_time_limit (300);
    W ten sposób skrypt do 5 minut (300 sekund) w czasie wykonywania.
    Wymiana 300 z 0 pozwolą mu wziąć tyle czasu, ile potrzeba.

  94. Phillip
    01 października 2008 w 22:26

    Witam, miło dzięki skryptu. Podczas pracy to dostaję:
    Błąd krytyczny: czas realizacji maksymalnie 30 sekund przekroczyła w on line 63

    Czy coś można zrobić, aby to obejść?

  95. Roelof
    30 września 2008 na 08:06

    Robbie, dzięki dla was więcej, jest to bardzo mile widziane. Niestety, nie działa od razu, kiedy go skopiować. Myślę, że czegoś brakuje, ponieważ kod jest rozłożone na dwa etaty.

    Można sprawdzić kod wyświetlany tutaj? Czy czegoś brakuje?

  96. ASCASC
    27 września 2008 05:04

    Brad, jeśli miał pobrany wcześniej niż w ubiegłym tygodniu, wymień "<?" u góry z "<? php" (usuń przestrzeni)

  97. Brad
    26 września 2008 na 14:43

    i zdobyć pierwszy w takim zakresie, odcięty, a reszta po prostu kod w przeglądarce. Wiem, że php działa, ponieważ reszta zakładu.
    Zrobiłem upgrade do php5 ma to znaczenie?

  98. Robbie
    24 września 2008 na 14:27

    )
    / / Pominąć, ponieważ należy do złych elementów tablicy
    więcej
    $ Newarray [$ y] = linearray ('"',",$ str_replace [$ y]);
    $ Linearray = array_values ​​($ newarray) / / reset kluczy do nowej tablicy
    $ X + +;
    }
    }
    }

  99. Robbie
    24 września 2008 na 14:27

    No to poprawka do mojego poprzedniego komentarza:

    włóż to między:

    $ Linearray = explode ($ fieldseparator, $ linia);

    ... Wstawić fragment kodu poniżej ....

    $ Linemysql = linearray ("','",$ implode);

    Znajduje i zachowuje wszystkie "Rzeczy, Więcej Stuff" razem przed implozją go.

    $ A = "";
    $ B = "";
    $ Qoutecount = 0;
    for ($ x = 0; $ x -1) {
    $ Qoutecount + +;
    if ($ qoutecount == 1)
    $ A = $ x; / / przechowujemy pierwszej instancji
    elseif ($ qoutecount == 2) {
    $ Quotecount = 0;
    $ B = $ x / / sklep drugiej instancji
    / /, Która to robi ... opracowują wszystkie elementy $ a do $ b do $ a i ignorowania wszelkich elementów po $ a do $ b, w nowej tablicy;
    Newa $ = "" / / zainicjować nowy łańcuch.
    for ($ z = $ a; $ z $ a & & $ y

  100. Robbie
    24 września 2008 na 12:19

    Nie uwzględnia takich dziedzinach, jak ten wiersz:
    Fname, nazwisko, "Company, Inc", miasto, województwo, kod

    Spółki oraz Inc się podział na dwie kolumny.

  101. Steve
    12 września 2008 na 12:19

    Rengaraj,
    csv, należy w tym samym miejscu co plik PHP.
    Ponadto, tak naprawdę nie trzeba używać tej samej nazwy pliku csv.
    bbqrest.csv jest przykład zastąpić nazwę pliku z własnymi.

  102. Rengaraj
    12 września 2008 o 12:16

    Czy jedno szybką odpowiedź mam bbqrest.csv csv na właściwą ścieżkę (root) ..

  103. Rengaraj
    12 września 2008 na 12:11

    Dostaję taki błąd Plik nie znaleziony. Upewnij się, czy podano poprawną ścieżkę.

  104. ollyd
    09 września 2008 na 06:35

    byłby to dobry pomysł, aby dodać zapobiec nagłówki w csv z wysłaniem do bazy danych. Albo stworzyć skrypt, który wyciąga pierwszy wiersz i tworzy db przy pomocy tych wartości jako nazwy kolumn.

  105. Joseph
    03 września 2008 o 12:39

    Steve,

    Można by umieścić skrypt w folderze dostępna przez internet, po zmianie zmiennych, które należy zmienić. Przeczytaj komentarze w skrypcie aby dowiedzieć się, co trzeba określić. Następnie wywołać skrypt w przeglądarce internetowej, takich jak:

    https://www.example.com/path-to-script/simplescvimport.php

  106. steve
    31 sierpnia 2008 na 19:04

    Razem newbie - rozdzierające moje włosy próby importu csv programu Excel do phpMyAdmin (na komputerze Mac). Czy miłość dokładnie wiedzieć gdzie i co mam z tym skrypt php ...?

  107. dani
    25 sierpnia 2008 o 20:06

    Wow jest cool ... miał pomysł po przeczytaniu kodowanie ... Dziękuję bardzo

  108. »CSV import
    07 czerwca 2008 na 10:29
  109. Import plik rozdzielany przecinkami w MySQL za pomocą skryptu PHP | e-commerce i SEO
    30 listopada 2007 at 11:59
  110. hfvd
    24 października 2007 w 12:44

    Witam, małe modyfikacje na auto wartości rosnących w kolumnie 1 (pole id)

    patrz zmienna $ count.

    ola, Enrico.

    / / $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
    / / @ Mysql_select_db ($ nazwa_bazy_danych) or die (mysql_error ());

    $ Lines = 0;
    $ Queries = "";
    $ Linearray = array ();

    $ Licznik = 0;

    foreach (split ($ lineseparator, $ csvcontent) as $ linia) {

    $ Licznik = $ licznik + 1;

    $ Lines + +;

    $ Line = trim ($ line, "\ t");

    $ Line = str_replace ("'"," \ '", $ linia);

    $ Linearray = explode ($ fieldseparator, $ linia);

    $ Linemysql = linearray ("','",$ implode);

    $ Zapytanie = "insert into` tabeli db `VALUES ('$ count', '$ linemysql');";

    $ Queries .= $ zapytanie. "\ N";

    @ mysql_query ($ zapytanie);
    }

    / / @ Mysql_close ($ con);

  111. »Konwersja csv do sql PHP @ Kodowanie Pad: blog Programowanie, dyskusje, tutoriale, zasoby
    24 września 2007 na 14:12
  112. Len Lulow
    28 lutego 2007 o 20:11

    Bardzo dziękuję tym zapisywane dużo czasu! Nice skrypt.

  113. S. Martinez
    22 lutego 2007 na 12:17

    Zwykle używam phpmyadmin, ale to prawda, w jednym przypadku nie jest on zainstalowany, i nie ma dostępu do powłoki (jak większość wspólnych dostawców usług hostingowych), może to być bardzo dobrym.

  114. Jake
    25 lutego 2007 na 06:31

    Bardzo przydatne, dziękuję.