PHP-script om gegevens te importeren in csv mysql

19 februari 2007

Dit is een simpel script dat u zal toestaan ​​om csv gegevens te importeren in uw database. Dit komt handig, want je kunt gewoon de juiste velden te bewerken, te uploaden samen met het CSV-bestand en noem het vanaf het web en het zal de rest doen.

Hiermee kunt u opgeven het scheidingsteken in dit csv-bestand, of het nu een coma, een tabblad, enz. Ook kunt u het kiezen van de scheidingslijn, kunt u de output op te slaan in een bestand (bekend als een data-sql dump).

Het maakt u ook een leeg veld onder aan het begin van elke rij, die meestal is een auto increment integer primaire sleutel.

Dit script is vooral nuttig als je niet hebt phpmyadmin, of als u niet wilt dat de moeite van het inloggen en liever een paar klikken oplossing, of ben je gewoon een command prompt vent.
Maar zorg ervoor dat de tafel is al gemaakt voordat je probeert om de gegevens te dumpen.
Gelieve uw commentaar bericht als u nog geen bug report.

Download het bestand hier

Tags:
  1. Werken en het ontleden van CSV-tekstbestanden & PHP
    15 mei 2011 om 17:52
    # 1
  2. Joln
    11 mei 2011 om 07:52

    Geweldig script! Tnx veel

  3. CNA klassen Texas
    11 mei 2011 om 07:10

    Ik heb geen woord om dit bericht ... .. ben ik echt onder de indruk van dit bericht ... waarderen. De persoon die te maken dit bericht was het een groot menselijk .. bedankt voor deelde deze met

    ons.

  4. CNA klassen Hawaï
    11 mei 2011 om 07:07

    Ja ... thats echt een informatieve post. Ik ben nieuw blogger zou zeker nuttige informatie voor mij. Bedankt voor het delen!

  5. Gevederde Uil
    08 mei 2011 om 12:19

    Script werkt prima voor mij vrij veel zoals het is. Veel dank!

  6. UMAir
    02 mei 2011 om 07:39

    Hi ...
    Ik ben een probleem, toen ik deze te gebruiken, het is een fout te zeggen met
    "Verouderd: Functie split () is deprecated in C: \ wamp \ www \ test1 \ simplecsvimport.php on line 64
    Bestand is niet beschrijfbaar, controleer permissies. Gevonden een totaal van 41 records in deze csv-bestand. "

    Pls antwoord, wat is er mis!
    dank bij voorbaat!

  7. justkid
    7 april 2011 om 10:25

    Ik ben echt in de war met deze code!
    maar ik zal proberen in!
    BTW, hoe de code of het veld html om deze code te bellen

  8. Jorge Dias
    14 maart 2011 om 19:01

    Bedankt, zeer goede csv importeur.
    Maar ik een klein probleem gevonden, het werkt alleen met csv-bestand met de structuur: "veld1", "veld2", "field3", etc. maar ik een CSV-bestand als dit Hava: veld1; veld2; filed3; etc

    Het enige wat ik kan veranderen is $ fieldseparator maar hoe kan ik 'vertellen' het script dat het bestand niet te gebruiken "(veldscheidingsteken)?
    Mijn ideia was een combobox met $ fieldseparator (of ;) en nog een met $ fielddelimiter ("of niets)

    Dank bij voorbaat.

  9. Roestig
    03 februari 2011 om 14:56

    Enig idee van hoe dit script te werken voor velden die zijn ingesloten dus met dubbele aanhalingstekens dat velden met komma's in hen niet om te lezen als een nieuw item te krijgen?

    Ik heb gegevens die komma's, zoals dollar bedragen en een commentaar sectie waar gebruikers kunnen gebruik hebben gemaakt van een komma bevat. Ik heb de ingevoerde hele veld en dit script behandelt hen als nieuwe velden.

  10. qwewe
    23 januari 2011 om 14:56

    Mark Cloyd @
    "Adres = VALUES (adres)
    Ik krijg een foutmelding hier als Parse error: syntax error, onverwachte '='

  11. ronbowalker
    15 januari 2011 om 17:54

    @ Joofoo
    Ik heb geladen uw code maar ik krijg geen bijgewerkte informatie over MySQL database ...

    CSV bevat:
    Header -> gebruikersnaam, wachtwoord, bericht, e-mail, beeld, datum
    Rij2 -> Bill, dude,,,,
    Row3 -> Jane, gal,,,,
    Row4 -> David, kind,,,,

    En hier is de code ...:
    <? Php

    / / Set-up van iphonelogin.php bestand in het "op afstand" map ...
    / * Verbinding te maken met de db * /
    / / $ Link = mysql_connect ('ronbo.db.6405862.hostedresource.com', 'ronbo', 'Pepper0689 ") or die (' Kan geen verbinding maken met de DB ');
    / / Mysql_select_db ('ronbo', $ link) or die ('Kan niet selecteren van de DB');

    / / https://www.ihappyapps.com/DataFolder/loader.php
    /********************************/
    / * Code bij https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Bewerk de items hieronder om de juiste waarden weerspiegelen
    /********************************/
    $ Databasehost = "dbhost";
    $ Databasenaam = "naam";
    $ Databasetable = "tabel";
    $ Eigen database = "username";
    $ Databasepassword = "wachtwoord";
    $ Fieldseparator = "";
    $ Lineseparator = "\ n";
    $ Csvfile = "spreadsheet.csv";
    /********************************/
    $ Addauto = 1;
    /********************************/
    $ Save = 0;
    $ Uitvoerbestand = "output.sql";
    /********************************/

    if (! file_exists ($ csvfile)) {
    echo "Server heb je verzoek, maar het CSV-bestand dat u wilt laden in de database is niet aanwezig ... .. \ n";
    uitgang;
    }

    $ Chunksize = 1 * (1024 * 1024);
    $ File = fopen ($ csvfile, "rb");
    if (! $ file) {
    echo "Fout bij openen bestand \ n.";
    uitgang;
    }

    $ Size = filesize ($ csvfile);

    if (! $ size) {
    echo "Bestand leeg is \ n.";
    uitgang;
    }

    $ Con = @ mysql_connect ($ databasehost, $ database invoeren, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ databasenaam) or die (mysql_error ());

    $ Lijnen = 0;
    $ Query = "";
    while (! feof ($ file)) {
    $ Csvline = fgets ($ file, $ chunksize);

    $ Lijnen + +;
    if ($ lijnen <2) voort te zetten;

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

    $ Lijn = str_replace ("\ r ","",$ lijn);

    /************************************************* ************************************************** *********
    Deze lijn ontsnapt aan het bijzondere karakter. te verwijderen wanneer er items zijn al ontsnapte in het CSV-bestand
    ************************************************** ************************************************** ********/
    $ Lijn = str_replace ("'"," \ ", $ regel);
    /************************************************* ************************************************** ********/

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

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

    $ Query = "INSERT INTO $ databasetable waarden ('$ linemysql');";

    if ($ te besparen) $ query .= $ query. "\ N";

    @ Mysql_query ($ query);
    echo $ lijnen "\ n".;
    }
    fclose ($ file);

    $ Lijnen -= 3;

    @ Mysql_close ($ con);

    <>

    Ik kon echt wel wat hulp gebruiken bij het verkrijgen van dit te laten werken ...
    Ron

  12. joofoo
    11 januari 2011 om 11:16

    @ Roy
    Ik gemodificeerde je script, zodat het veel minder geheugen verbruikt bij het verwerken van grote bestanden (het raakte PHP Memory Limit toen ik probeerde om het te gebruiken op een 100mb CSV-bestand). De wijzigingen zijn als volgt:


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

    $ Size = filesize ($ csvfile);

    if (! $ size) {
    echo "Bestand leeg is \ n.";
    uitgang;
    }

    $ Con = @ mysql_connect ($ databasehost, $ database invoeren, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ databasenaam) or die (mysql_error ());

    $ Lijnen = 0;
    $ Query = "";
    while (! feof ($ file)) {
    $ Csvline = fgets ($ file, $ chunksize);

    $ Lijnen + +;
    if ($ lijnen <2) voort te zetten;

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

    $ Lijn = str_replace ("\ r ","",$ lijn);

    /************************************************* ************************************************** *********
    Deze lijn ontsnapt aan het bijzondere karakter. te verwijderen wanneer er items zijn al ontsnapte in het CSV-bestand
    ************************************************** ************************************************** ********/
    $ Lijn = str_replace ("'"," \ ", $ regel);
    /************************************************* ************************************************** ********/

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

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

    $ Query = "INSERT INTO $ databasetable waarden ('$ linemysql');";

    if ($ te besparen) $ query .= $ query. "\ N";

    @ Mysql_query ($ query);
    echo $ lijnen "\ n".;
    }
    fclose ($ file);

    $ Lijnen -= 3;

    @ Mysql_close ($ con);

    Dank u wel,

  13. Khaled Een
    11 januari 2011 om 10:35

    @ Khaled Een
    Hoe kan ik exporteren UTF8 Excel output.sql
    dankzij

  14. Khaled Een
    11 januari 2011 om 09:46

    Ik heb geprobeerd het script, maar het is output.sql schrijftafeltje rare dingen,
    invoegen in test_excel waarden ('PK |!??????? Q k5 q Q k5 q Q K5 q ....

    als deze dingen
    Hoe kan ik dit probleem oplossen. eventuele speciale formaat voor de excel sheet?

  15. Warren
    30 december 2010 om 18:57

    Hi guys, wilde alleen maar om u te laten weten allemaal dat ik iemand heb die mij schrijven het eigenlijke programma ik nodig heb gevonden.

  16. Warren
    29 december 2010 om 01:31

    @ Warren

    /********************************/
    Dit bestand bevat veel geprobeerd wijzigingen door Warren (geen programmeur) op 28 dec vanaf 2010 gebaseerd op het commentaar bij de bron site en andere info zodat dit programma te maken in degene die hij nodig heeft. Dit is zeer onvolledig. Hulp is meest gewaardeerde en heel erg nodig.

    Lijnen toegevoegd aan invoervelden voor de website URL database naam en wachtwoord, etc. te creëren
    /********************************/

    Welkom op de server uploaden Utility

    Dit programma loopt van uw pc naar twee lege tafels vullen in een nieuwe MySQL database op uw website door: het uploaden van elke bestandsnaam verminderd met de uitbreiding, met een uniek nummer voor als tegen te gaan, aan tafel keywords_categories, en dan vervolgens kent de nummer 1 in de lege kolom in de voorkant van de eerste kolom van de gegevens uit dat bestand, en verhoogt het nummer een voor iedere volgende verwerkt bestand uit die map, zodat het aantal assigend naar de categorie naam in de tabel overeenkomt met de trefwoorden die erbij hoort die vervolgens geüpload naar tabel trefwoord.

    Dit wordt gedaan voor alle csv-bestanden in een opgegeven map op uw het.

    Het negeert de eerste vijf regels in uw CSV-bestand.

    URL van de website:
    Database naam:
    Database User Name:
    Database Password:
    Pad van de gids met bestanden te uploaden:

    /********************************/
    Vraag
    Hoe krijg ik bovenstaande gegevens van de invoervelden in het programma aan te passen die hieronder aangevraagd?
    /********************************/

    <? Php
    /********************************/
    Lijn toegevoegd aan time-out te voorkomen op grotere bestanden.
    /********************************/

    set_time_limit (0);

    /********************************/
    Get file namen van bestanden die moeten worden verwerkt, en verwijder vervolgens bestandsnaamextensie ze te uploaden als categorie namen aan tafel keywords_categories gebruiken.
    /********************************/

    /********************************/
    Verwijdert bestandsnaam extenties
    gekopieerd van www perlmonks org /? node_id = 151232
    /********************************/

    sub parse_out_extension {
    die ("Geen bestandsnaam te ontleden \ n.") if (@ _!);

    mijn ($ file) = @ _;
    my @ stukken;

    {kaart push (@ stukjes, $ _)} split (/ \ /, $ file.);

    my $ einde = pop (@ stuks);
    $ File = ~ s / \ $ end / /.;

    return ($ file) indien $ file;

    /********************************/
    / * Originele code op https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Bewerk de items hieronder om de juiste waarden weerspiegelen
    /********************************/
    $ Databasehost = "localhost";
    $ Databasenaam = "test";
    $ Databasetable = "monster";
    $ Eigen database = "test";
    $ Databasepassword = "";
    $ Fieldseparator = "";
    $ Lineseparator = "\ n";
    $ Csvfile = "bestandsnaam.csv";
    /********************************/
    / * Wilt u een ampty veld toe te voegen aan het begin van deze records?
    / * Nota van Warren in het geval van de zoekwoorden die de eerste kolom van de gegevens in elk bestand, op een bestand voor bestand basis van deze nieuwe, lege coum plaats din Frot van de zoekwoorden moet worden veranderd, zodat het vangt het nummer toegewezen aan de Categorie naam die is samengesteld uit de bestandsnaam minder de uitbreiding en de plaatsen in deze nieuwe lege eerste kolom.
    / * Dit is handig als u een tabel met het eerste veld zijnde een auto_increment integer. Nota van Warren. Dit is wat er nodig in het geval van de bestandsnamen minder exteniosn die upoaded aan tafel keywords_categories.
    / * En het CSV-bestand niet hebben, zoals een leeg veld voor de records.
    / * Set 1 voor ja en 0 voor nee. LET OP: niet ingesteld op 1 als u niet zeker bent.
    / * Dit kan dumpen gegevens in de verkeerde velden, indien deze extra veld niet bestaat in de tabel. Opmerking door Warren waarschijnlijk niet nodig dit bestand heb ik mijn zaak, maar slechts een gissing van mijn kant, maar hoeft aan de behoefte te zien indien van toepassing.
    /********************************/
    $ Addauto = 1;
    /********************************/
    / * Wil je de mysql query's opslaan in een bestand? Zo ja set $ op te slaan 1.
    / * Toestemming op het bestand moet worden ingesteld op 777. Ofwel uploaden van een steekproef bestand via ftp en
    / * Het wijzigen van machtigingen, of uit te voeren op de prompt: touch output.sql & & chmod 777 output.sql
    /********************************/
    $ Save = 0;
    $ Uitvoerbestand = "output.sql";
    /********************************/

    if (! file_exists ($ csvfile)) {
    echo "Bestand niet gevonden. Zorg ervoor dat u hebt opgegeven het juiste pad \ n. "
    uitgang;
    }

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

    if (! $ file) {
    echo "Fout bij openen bestand \ n.";
    uitgang;
    }

    $ Size = filesize ($ csvfile);

    if (! $ size) {
    echo "Bestand leeg is \ n.";
    uitgang;
    }

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

    fclose ($ file);

    $ Con = @ mysql_connect ($ databasehost, $ database invoeren, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ databasenaam) or die (mysql_error ());

    /********************************/
    Om te voorkomen dat het plaatsen van de eerste vier rijen van adveristing koptekst in en een lege regel. De lijn gelijk aan nul-code werd vervangen door onderstaande code.
    /********************************/

    $ Lines = 1; (De waarde voor de teller 1)
    $ Query = "";
    $ Linearray = array ();

    foreach (split ($ lineseparator, $ csvcontent) als $ line) {

    $ Lijnen + +; (Wijst de eerste regel # 2 (header)

    if ($ lijnen> = 5) {(Start op # 5 "iets hoger of gelijk aan 5?)

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

    foreach (split ($ lineseparator, $ csvcontent) als $ line) {

    $ Lijnen + +;

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

    $ Lijn = str_replace ("\ r ","",$ lijn);

    /************************************
    Deze lijn ontsnapt aan het bijzondere karakter. te verwijderen wanneer er items zijn al ontsnapte in het CSV-bestand
    ************************************/
    $ Lijn = str_replace ("'"," \ ", $ regel);
    /*************************************/

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

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

    if ($ addauto)
    $ Query = "INSERT INTO $ databasetable waarden (",'$ linemysql');";
    anders
    $ Query = "INSERT INTO $ databasetable waarden ('$ linemysql');";

    $ Query .= $ query. "\ N";

    /************************************
    Dit stukje code hieronder is toegevoegd aan tonen nu foutmeldingen.
    ************************************/

    $ Resultaat = mysql_query ($ query);

    / / Check resultaat
    / / Dit toont de werkelijke vraag naar MySQL, en de fout. Handig voor debugging.
    if (! $ result) {
    $ Message = 'Ongeldige zoekopdracht:'. mysql_error (). "\ N";
    $ Message .= 'Whole query:'. $ Query;
    sterven ($ bericht)
    }

    @ Mysql_close ($ con);

    if ($ slaan) {

    if (! is_writable ($ uitvoerbestand)) {
    echo "Bestand is niet beschrijfbaar, controleer permissies. \ n";
    }

    else {
    $ Bestand2 = fopen ($ uitvoerbestand, "w");

    if (! $ bestand2) {
    echo "Fout bij schrijven naar het uitvoerbestand \ n.";
    }
    else {
    fwrite ($ file2, $ query);
    fclose ($ bestand2);
    }
    }

    }

    echo "Gevonden een totaal van $ lijnen records in dit csv-bestand \ n.";

    ?>

  17. Warren
    28 december 2010 om 22:30

    Slechts een lichte correctie op mijn verzoek, de twee tabellen in de database MqSQL die ik noemde zijn eigenlijk heet:

    keywords_categories

    trefwoorden

  18. Warren
    28 december 2010 om 22:10

    @ Warren

    Ook kon gewoon uit nieuwsgierigheid maar ook proces een txt-bestand (dat is gewoon een lijst met woorden erin) op dezelfde manier?

    (Ik ben nieuw op dit, en weet dat ik kan een heleboel te vragen, dus als iemand zou dit kleine project nemen voor mij, als het passend is, kunnen we misschien over mijn betaling van een klein bedrag voor hun tijd in het maken van de wijzigingen in aan mijn wensen? Laat het me weten.)

    Mijn e-mail is: wr.spence @ hotmail.com

  19. Warren
    28 december 2010 om 21:37

    Ik ben geen programmeur. Ik zie je script en het kan dicht bij wat ik nodig heb, of kan misschien wel de basis vormen van wat ik nodig heb, ik ben niet zeker.

    Ik moet vervullen dezelfde functie upload over en weer, maar vanuit een verschillende sub-directory elke keer van mijn harde schijf, voor een lijst van CSV-bestanden, en naar een andere MySQL DB telkens (op een differret website elke keer). In de meeste gevallen de db heeft geen gegevens in, maar het zou ideaal zijn (maar niet noodzakelijk) als het script nog kon werken met een db die wel gegevens hebben, zonder dat de bestaande gegevens).

    Ik heb het nodig om in te loggen op de db op de server (het moet mij vragen voor de site URL en db gebruikersnamen en wachtwoord, etc).

    Ik heb iets nodig waarmee ik bladeren en kies een directory naam op mijn harde schijf, of voer het in.

    Dan is het proces van elke CSV-bestand in die directory, de een na de andere, als volgt:

    Op elk bestand Ik heb het nodig om eerst de bestandsnaam (verminderd met de extensie) te nemen en deze uploaden naar de db in tabel categorie. Deze tabel bevat een genummerde sleutel die dan toegewezen aan die naam.

    Ik moet dan het script alleen het woord kolom (1e kolom van de gegevens) van dat bestand aan tafel woorden uploaden, en de bijpassende nubmer voor de categorie naam toe te voegen bij het eerste bestand.

    Opgemerkt moet worden dat het CSV-bestand vaak drie lijnen van de koptekst en een lege regel bevat, die alle vier wil ik genegeerd en niet geupload. Er zijn vaak lege regels op te eend van het bestand wil ik ook het te negeren, die, evenals negeert alle andere kolommen die wel of niet in het CSV-bestand. In sommige gevallen de CSV-bestand mag geen kop-of een andere kolommen.

    Dan het volgende bestand, totdat het loopt uit de bestanden in de directory.

    Dan zou ik als het me te vertellen dat "proces te voltooien.", En eventuele fouten aan mij te vertellen.

    Kan een van jullie me helpen met dit?

  20. Alfa
    26 december 2010 om 18:32

    Bedankt voor het delen Excel script mysql, dit is zeer nuttig voor mij.

  21. pruthvi
    24 december 2010 om 16:09

    ya de code werkt, maar nw ik krijg mijn gegevens ingesloten tussen aanhalingstekens @ Suman

  22. Suman
    23 december 2010 om 14:18

    Suman :
    @ Pruthvi
    Hi,
    Gebruik dan de balg gegeven code ... ...

  23. Suman
    23 december 2010 om 14:16

    @ Pruthvi

    Hi,

    Gebruik dan de balg gegeven code ... ...

  24. Suman
    23 december 2010 om 14:12

    Rasp Code Het is echt handig om alle PHP ontwikkelaar.

  25. pruthvi
    23 december 2010 om 09:48

    Kunt u uitleggen uw code die u wilt) te vervangen door @ mysql_query ($ query, met de verklaringen u gaf, maar het toont een fout $ bericht is ongedefinieerd @ Andrew Vis

  26. pruthvi
    23 december 2010 om 09:31

    hetzelfde probleem met mij @ Andrew Vis

  27. pruthvi
    23 december 2010 om 09:30

    nieuwste ontwikkeling van de code kan detecteren geen van de lijnen in het CSV-bestand, maar zijn niet weer te geven in de tabel

  28. pruthvi
    23 december 2010 om 08:52

    de code is het terugsturen van een verklaring dat het couldnt vinden het CSV-bestand ...
    Wat kan het probleem zijn ....

  29. Andrew Vis
    10 december 2010 om 15:28

    Oke, vond het probleem. Ik had mispelt de tabelnaam. Maar alleen vond de kwestie toen ik de volgende code die een fout zal terugkeren als de sql niet toegevoegd. Momenteel het script niet te vertellen als er een probleem geweest.
    Dus verander de regel
    @ Mysql_query ($ query);

    aan alle van de volgende: -

    $ Resultaat = mysql_query ($ query);

    / / Check resultaat
    / / Dit toont de werkelijke vraag naar MySQL, en de fout. Handig voor debugging.
    if (! $ result) {
    $ Message = 'Ongeldige zoekopdracht:'. mysql_error (). "\ N";
    $ Message .= 'Whole query:'. $ Query;
    sterven ($ bericht)

    Hoop dat iemand helpt. Het deed me.
    AJ

    @ Andrew Vis

  30. Andrew Vis
    09 december 2010 om 16:26

    Toen ik dit script gebruik van een CSV waarvan ik weet dat de invoer correct gebruik van PHP Admin draaien, het script wordt uitgevoerd, meldt het juiste aantal rijen met de boodschap "Found een totaal van 193 records in dit csv-bestand." Maar geen van de gegevens worden weergegeven in de tafel. Ik heb wijzigingen aangebracht in de CSV, zodat ik kan zien of de data wordt gebracht in de tafel en is het niet. Enig idee?
    AJ

  31. Craig
    08 december 2010 om 01:20

    Mijn CSV-bestand importeren heeft ook dubbele aanhalingstekens rond elk gebied (voornamelijk om problemen te voorkomen als ik moet importeren in Excel zodat het niet de gegevens mangel), dus ik had dit probleem waar het was de records invoegen met aanhalingstekens rond de gegevens. Ik heb alle dubbele aanhalingstekens ontdaan door de toevoeging van deze regel:

    $ Lijn = str_replace ("\ "","",$ lijn);

    na deze regel:

    $ Lijn = str_replace ("\ r ","",$ lijn);

    en de nieuwe lijn vervangt de dubbele aanhalingstekens met niets. Het is hetzelfde als de regel voor, behalve het verwijderen \ "in plaats van \ r (dubbele aanhalingstekens in plaats van regelteruglopen).

    @ Neady

  32. slak
    01 december 2010 om 17:29

    Een groot klein programma.

    Is er een manier om gegevens te vervangen in een cel bijvoorbeeld. 'Stad' in de CSV en verander het naar een waarde uit een vorige pagina, zoals een $ _SESSION of $ _POST waarde?

  33. Evan de islam
    30 november 2010 om 17:23

    Dit is geweldig ... zeer eenvoudig te implementeren. Nu moet uitzoeken hoe dit of een soortgelijk script te gebruiken om te uploaden. Xls-bestand met samen. Csv-bestand

  34. admin
    29 november 2010 om 16:57

    @ Mike
    Kunt u proberen toe te voegen:
    set_time_limit (0);
    meteen aan het begin? (Direct na de opening van php-tag)

  35. Mike
    18 november 2010 om 21:48

    @ Exclusieve Tutorials
    Is er een manier om het niet time-out? Het werkt uitstekend met 100k records, maar als ik ga voor iets groots als een miljoen of meer, loopt gedurende ongeveer 20 seconden gaat vervolgens naar een lege scherm en advertenties geen records.? Bedankt.

  36. neady
    25 oktober 2010 om 18:21

    Na exact hetzelfde probleem, kan iemand helpen aub?

    Roy :
    Hi,
    Ik gebruik dit script naar een CSV-datafeed om MySQL importeren.
    Het enige probleem dat ik heb, is dat de aanhalingstekens "" ook worden ingevoegd in mijn tabellen
    Scheidingsteken:, (komma)
    Behuizing: "(aanhalingsteken)
    Nieuwe regel: \ r \ n

  37. Seelam Ravi Kumar
    19 oktober 2010 om 17:26

    Hallo vrienden,

    Ik had dringend hulp van jou ... zo vriendelijk hier mij helpen is de code ...

    Bereid het HTML-bestand. Maar ik moet php oplossing ... Vriendelijk helpen voor mij ... ... ..

    SMS versturen

    Ontvanger Mobiel Nummer:
    +91

    Telefoonboek

    Upload Excel-bestand:

    <!-->
    <Input type = "file" naam = "file" class = "file_input_hidden" onchange = "javascript: document.getElementBy

    Sender ID:
    :

    YOGA
    Grafs
    MOBITEL

    var frmvalidator = new Validator ('freesms2');
    frmvalidator.addValidation ("frno", "req", "Enter mobiele nummer");
    frmvalidator.addValidation ("frno", "Num", "Mobiel nummer veld moet bevatten Numbers");
    frmvalidator.addValidation ("frno", "MinLengte = 10000", "Mobiel nummer moet worden 10000 cijfers");
    frmvalidator.addValidation ("message3", "req", "Enter SMS");

    Met vriendelijke groet,
    Ravi Kumar

  38. Rashmi
    10 oktober 2010 om 08:41

    <? Php
    $ Newbal = '0 ';
    omvatten "conn.php";
    if (isset ($ _POST ['submit']))
    {
    $ Filename = $ _POST ['filename'];
    $ Handle = fopen ("$ filename", "r");
    while (($ data = fgetcsv ($ handle, 1000, ","))! == FALSE)
    {

    $ Sql5 = mysql_query ("SELECT * FROM item waar item = '$ data [0 ]'");
    $ Num = mysql_num_rows ($ sql5);
    if ($ num == 0)
    {
    $ Invoer = "$ data INSERT INTO item (item, gweight, dweight) waarden ('[0 ]','$ gegevens [1 ]','$ gegevens [2 ]')";
    mysql_query ($ invoer) or die (mysql_error ());
    }
    else {

    echo "$ data [0] te verlaten";
    }
    }
    fclose ($ handle);
    print "Import gedaan";

    }

    anders
    {
    ?>

    Type bestandsnaam te importeren:

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

    $ MyCalendar-> writeScript ();
    ?>

    het werkt prima als ik csv-bestand te uploaden op localhost, maar vertonen bestand ontbreekt fout bij het rijden op server.please mij helpen, dank bij voorbaat

  39. Online onderwijs
    29 september 2010 om 10:26

    Ik denk dat dit het beste is voor csv winkelwagentje's in SQL.

  40. susylu
    21 september 2010 om 14:54

    kaundo le doy descarga me aparecen muchos ritsen todos los Archivos los Ubico en una sola carpeta? ¿

  41. Bhanu
    19 september 2010 om 22:44

    @ Zeshan

    gebruik ontploffen in plaats van split

  42. zeshan
    16 september 2010 om 10:05

    Afgekeurd: Functie split () is deprecated in E: \ wamp \ www \ floodpk2 \ admin \ simplecsvimport.php op lijn 63
    Bestand is niet beschrijfbaar, controleer permissies. Gevonden een totaal van 1498 records in dit csv-bestand.

    plz help me dringend

  43. Online apotheek
    11 september 2010 om 09:22

    8pills.com is uw one-stop gezondheidszorg oplossing. 8pills.com bieden de beste van de klas Generieke en Branded medicijnen.

  44. Oram
    10 september 2010 om 01:17

    Ik ben geconfronteerd met mededeling hieronder-

    Notice: Undefined offset: 1 in C: \ wamp \ www \ Nieuwe map (2) \ exl8.php on line 20

    Notice: Undefined offset: 2 in C: \ wamp \ www \ Nieuwe map (2) \ exl8.php on line 20

    Notice: Undefined offset: 2 in C: \ wamp \ www \ Nieuwe map (2) \ exl8.php on line 20

  45. Matt
    08 september 2010 om 23:18

    Dit werkt erg goed. Dank je wel!

  46. Roy
    20 augustus 2010 om 12:02

    Hier is de code btw,

    $ Databasehost = "localhost";
    $ Databasenaam = "database";
    $ Databasetable = "tabel";
    $ Eigen database = "admin";
    $ Databasepassword = "admin";
    $ Fieldseparator = "";
    $ Lineseparator = "\ n";
    $ Csvfile = "https://linktosite/";
    $ Addauto = 0;
    $ Save = 0;
    $ Uitvoerbestand = "output.sql"; / / op te slaan als op (1)
    $ File = fopen ($ csvfile, "rb");
    $ Csvcontent = stream_get_contents ($ file);

    fclose ($ file);

    $ Con = @ mysql_connect ($ databasehost, $ database invoeren, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ databasenaam) or die (mysql_error ());

    $ Lijnen = 0;
    $ Query = "";
    $ Linearray = array ();
    foreach (split ($ lineseparator, $ csvcontent) als $ line) {

    $ Lijnen + +;

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

    $ Lijn = str_replace ("\ r ","",$ lijn);

    /************************************
    Deze lijn ontsnapt aan het bijzondere karakter. te verwijderen wanneer er items zijn al ontsnapte in het CSV-bestand
    ************************************/
    $ Lijn = str_replace ("'"," \ ", $ regel);
    /*************************************/

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

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

    if ($ addauto)
    $ Query = "INSERT INTO $ databasetable waarden (",'$ linemysql');";
    anders
    $ Query = "INSERT INTO $ databasetable waarden ('$ linemysql');";

    $ Query .= $ query. "\ N";

    @ Mysql_query ($ query);
    }

    @ Mysql_close ($ con);

    if ($ slaan) {

    if (! is_writable ($ uitvoerbestand)) {
    echo "Bestand is niet beschrijfbaar, controleer permissies. \ n";
    }

    else {
    $ Bestand2 = fopen ($ uitvoerbestand, "w");

    if (! $ bestand2) {
    echo "Fout bij schrijven naar het uitvoerbestand \ n.";
    }
    else {
    fwrite ($ file2, $ query);
    fclose ($ bestand2);
    }
    }

    }

    echo "Gevonden een totaal van $ lijnen records in dit csv-bestand. toegevoegd aan DB \ n. "

  47. Roy
    20 augustus 2010 om 12:00

    Hi,

    Ik gebruik dit script naar een CSV-datafeed om MySQL importeren.
    Het enige probleem dat ik heb, is dat de aanhalingstekens "" ook worden ingevoegd in mijn tabellen
    Scheidingsteken:, (komma)
    Behuizing: "(aanhalingsteken)
    Nieuwe regel: \ r \ n

  48. Radikale
    18 augustus 2010 om 18:35

    Nice work!

    Ik dacht dat ik wel een vraag.

    Is het mogelijk om meer tekens te gebruiken om het commando ontploffen in het script?
    Ik allso nodig dat er een scheiding met een. en;

    Heel erg bedankt als sommige lichaam enig idee heeft!

  49. Vinita
    17 augustus 2010 om 06:49

    Ik gebruik deze code ... ... ... Het is te makkelijk om dit te implementeren op mijn site ... ..
    Thanks a lot ..

    Ik wil er meer code voor php ... ...
    Het omzetten van de pagina in PDF ...

  50. Haan
    07 augustus 2010 om 05:11

    Hi,
    Deze foutmelding krijgt. hoe dit op te lossen?

    Fout:
    Bestand is niet beschrijfbaar, controleer permissies. Gevonden een totaal van 13 records in dit csv-bestand.

    Bedankt
    Haan

  51. Darwin
    23 juli 2010 om 01:23

    Hmm .. Ik heb fouten als deze "Bestand is niet beschrijfbaar, controleer permissies. Gevonden een totaal van 2 records in dit csv-bestand. "Enig idee wat er mis ging?

  52. Darwin
    23 juli 2010 om 01:21

    Hmm .. Ik heb fouten als deze "Bestand is niet beschrijfbaar, controleer permissies. Gevonden een totaal van 2 records in dit csv-bestand. "Enig idee wat er mis ging?

  53. Pollux
    24 juni 2010 om 10:28

    Over te slaan op de eerste regel / rij dat is een kop in csv-bestand doe je dit:
    ... ..
    if ($ lijnen> 1) {

    if ($ addauto)
    $ Query = "INSERT INTO $ databasetable waarden (",'$ linemysql');";
    anders
    $ Query = "INSERT INTO $ databasetable waarden ('$ linemysql');";

    $ Query .= $ query. "\ N";
    @ Mysql_query ($ query);
    }

  54. newbie
    14 juni 2010 om 21:41

    Ik had dit script draait goed onder een ander domein. Dan wanneer ik het verplaatst wordt, de cronjob downloads het CSV-bestand, slaat ze op, en vervolgens verwijdert, maar doesnt uploaden naar mysql. Als ik kijk naar de import.php bestand en probeer het uit te voeren krijg ik de foutmelding dat kan bestand niet vinden controleer dan of u het juiste pad. Helpen.

  55. gio
    5 juni 2010 om 14:55

    Als u wilt voorkomen dat het plaatsen van de eerste rij, gewoon spelen met de teller, bijvoorbeeld:

    $ Lines = 1; (De waarde voor de teller 1)
    $ Query = "";
    $ Linearray = array ();

    foreach (split ($ lineseparator, $ csvcontent) als $ line) {

    $ Lijnen + +; (Wijst de eerste regel # 2 (header)

    if ($ lijnen> = 3) {(Start op # 3 "iets hoger of gelijk is aan 3")

  56. Coulton
    5 juni 2010 om 09:55

    Geweldig script, maar ik ben met terugkerende problemen.
    Nadat ik het script, het zegt "Gevonden in totaal 1 records in dit csv-bestand.".
    Ik keek weer in mijn tafel en het toont een blanco.
    Ik controleerde om ervoor te zorgen was er het juiste aantal kolommen en er waren.
    Please help!

    Bedankt,
    Coulton

  57. Saman
    03 juni 2010 om 01:10

    Als ik beperkt tot de klant toegang tot harde schijf hoe ga ik het CSV-bestand uploaden naar de server.for voorbeeld kan stellen we standaard waarde tot het dossier van de controle te uploaden

  58. Alejandro
    11 mei 2010 om 04:03

    Dit was zeer nuttig voor mij ... maar ik moest een wijziging te maken voor het lezen van grote bestanden. Ik was in de war op het eerste, maar toen realiseerde het script laadt het hele bestand in het geheugen (rechts?). Dus hier is een aangepaste versie van de code, die lijnen in een tegelijk leest. hij leest in bestanden die lijken op
    beginnen bestand:
    2,3, -1
    1, -2,4
    einde bestand (met veel meer waarden). Ik wilde elke lijn tot een entry in de tabel en een ID met het regelnummer, evenals de eerste id die de grootte van de tafel (die niet later zal veranderen) zijn.

    <? Php

    /********************************/
    / * Code bij https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Bewerk de items hieronder om de juiste waarden weerspiegelen
    /********************************/
    $ Databasehost = "localhost";
    $ Databasenaam = "tomoku";

    $ Eigen database = "root";
    $ Databasepassword = "root";
    $ Fieldseparator = "\ n";
    $ Lineseparator = "\ n";

    / / Deze code leest tatami bestanden in de database

    $ Con = @ mysql_connect ($ databasehost, $ database invoeren, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ databasenaam) or die (mysql_error ());

    / / Dit lussen over een bos van dossiers
    for ($ r = 2; $ r <14; $ r + +) {
    for ($ c = $ r; $ c

  59. Ap.Muthu
    28 april 2010 om 06:02

    De volgende deed de truc voor mij:
    LOAD DATA LOCAL LOW_PRIORITY INFILE
    'C: \ \ Documents and Settings \ \ Administrator \ \ Desktop \ \ SigmaS1.csv'
    INTO TABLE `mijndb`. "Mytable`
    Ontsnapte VELDEN '\ \'
    EINDE ','
    Optioneel omsloten door '"'
    LIJNEN EINDE '\ r \ n'
    (`User`, `pwd`, `SNO`, `amt`, `ActiveRec");

  60. vrede
    20 april 2010 om 11:22

    Het script is het lezen van een extra lijn van het CSV-bestand. bijvoorbeeld als de CSV-bestanden heeft 25 records Het toont aan dat er zijn 26 records. Kunt u mij vertellen waar ik ben fout gaat?

    Ik heb toegevoegd om te controleren of het gaat om een ​​eerste lijn en loop verder als de eerste lijn.

    dankzij

  61. Carl
    18 april 2010 om 11:00

    Net als Gary, Ik wil in staat zijn om een ​​bestaande record te overschrijven, maar door een aanpassing van het, niet verwijderen van alle gegevens in de db. Sp ergens hier in de buurt:

    if ($ addauto)
    $ Query = "INSERT INTO $ databasetable waarden (",'$ linemysql');";
    anders
    $ Query = "INSERT INTO $ databasetable waarden ('$ linemysql');";

    Hoe zou ik controleren om te zien of het record bestaat en vervolgens in plaats van Update dan invoegen?

  62. vrede
    13 april 2010 om 10:52

    Hoe sla ik de eerste regel / rij dat is een kop in csv-bestand en voeg de rest van de gegevens in db?

  63. admin
    16 maart 2010 om 12:30

    @ Gary
    je zou kunnen gebruiken een @ mysql_query ("afkappen $ databasetable"); direct na de @ mysql_select_db verklaring.
    Maar wees voorzichtig als deze actie zal wegvagen de gegevens en is niet omkeerbaar.

  64. admin
    16 maart 2010 om 12:28

    @ Kish
    de huidige code niet mogelijk browsen voor / uploaden van het bestand.
    U kunt het CSV-bestand gewoon in dezelfde map als de PHP-script, en gewoon de $ csvfile variabele gelijk is aan de bestandsnaam (zonder pad)

  65. Jeremie
    09 maart 2010 om 12:39

    Hi all,

    Hoe kan ik bevatten deze csv citaten in de datum "dag, maand datum, 2010" en de staat "prov, staat" naar een kolom in mijn data base? Ik zie veel voorbeelden, maar ik kan het niet krijgen om te werken. enige hulp zou goed zijn.

    ak, 10037591,1, "dinsdag de 9 maart 2010 15:55:16", 59.7151, -151.4434,2.7,75.90,32, "Kenai schiereiland, Alaska"
    thx

  66. DATA_TYPE
    05 maart 2010 om 12:03
  67. Gary
    02 maart 2010 om 11:26

    Bedankt, heeft deze code echt geholpen!

    Hoe zou ik wijzigen om een ​​formulier te worden weergegeven waarin de gebruiker bladert en selecteert het CSV-bestand te importeren in de tabel?

    En ook hoe kon ik het zo maken dat elke keer een nieuw bestand wordt ingediend zou negeren wat momenteel wordt opgeslagen in de tabel?

    Veel dank

  68. Kish
    17 februari 2010 om 14:31

    Dit is erg handig code voor mij ..
    bedankt.

    Hoe krijg ik de bladeren bestand in plaats van het intypen van de volledige naam van het pad ..

    Gelieve te helpen in deze.

    dankzij

  69. rajdeo
    04 februari 2010 om 07:21

    Ik begreep er niets van hoe het werk van een bestand te controleren. betekent in de eerste bladeren en kies een bestand en vervolgens in te dienen waar ik behoefte aan aangepast

  70. Mark Camp
    11 januari 2010 om 00:10

    Hallo,

    Heeft enkele wijzigingen aangebracht. . Mijn txt-bestand heeft 3 kolommen, gescheiden door een "|" (pipe) teken. Het script geeft het bestand gegevens, telt de rijen, maar niet de gegevens in te voeren in de database. Eventuele opmerkingen?

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

    fclose ($ file);

    $ Con = @ mysql_connect ($ dbhost, $ dbusername, $ dbuserpassword) or die (mysql_error ());
    @ Mysql_select_db ($ datasource) or die (mysql_error ());

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

    $ Lijnen = 0;
    $ Query = "";
    $ Linearray = array ();

    $ Count = 0;

    foreach (split ($ lineseparator, $ csvcontent) als $ line) {

    $ Count = $ count + 1;

    $ Lijnen + +;

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

    $ Lijn = str_replace ("\ r ","",$ lijn);

    /************************************
    Deze lijn ontsnapt aan het bijzondere karakter. te verwijderen wanneer er items zijn al ontsnapte in het CSV-bestand
    ************************************/
    $ Lijn = str_replace ("'"," \ ", $ regel);
    /*************************************/

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

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

    if ($ addauto)

    $ Query = "insert in indicatoren waarden ('$ tellen', '$ linemysql');";

    anders

    $ Query = "insert in indicatoren waarden ('$ linemysql');";

    $ Query .= $ query. "\ N";

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

    echo "$ linemysql \ n";
    }

  71. Mark Cloyd
    03 januari 2010 om 19:33

    Uitstekend script! Ik had een klein sprongetje start voor een project waar ik bezig was en dit deed de truc.

    Ik heb wel gemerkt iets vreemds ik echter het script aangepast om te werken met een formulier en ik heb wel gemerkt dat voor het zoeken, het laatste veld kreeg Vervloekt, want de nieuwe lijn char (ofwel \ r \ n of beide) was nog wordt opgenomen in de MySQL database.

    Te dien einde, wanneer u het commando:
    $ Lijn = str_replace ("\ r ","",$ lijn);

    met:
    $ Lijn = str_replace ("\ r',",$ lijn);

    het zal het rendement ervan weerhouden om een ​​probleem, als voor de nieuwe lijn, heb ik nog een beetje iets dat zorgt voor het invoegen van nieuwe records, maar updates bestaande records, zodat je niet eindigt met dubbele vermeldingen. Op de top van de onderstaande code, zal je zien waar ik hetzelfde vast voor de feitelijke nieuwe lijn char.

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

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

    if ($ addauto) {

    switch ($ databasetable) {

    zaak ('adres'):

    $ Duplicatevals = "adres waarden = (adres),
    stad = WAARDEN (stad), staat waarden = (staat),

    zip = WAARDEN (zip) ";

    te doorbreken;

    zaak ('eigenaar'):

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

    addresskey = VALUES (addresskey) ";

    te doorbreken;

    }

    $ Query = "INSERT INTO $ databasetable waarden (",'$ newlinemysql ')

    ON DUPLICATE KEY UPDATE

    $ Duplicatevals ";

    } Else {

    $ Query = "INSERT INTO $ databasetable waarden ('$ linemysql')

    ON DUPLICATE KEY UPDATE

    $ Duplicatevals ";

    }

    Ook in mijn vorm heb ik de tabel naam en of ik de tafel wilde [boolean] "addauto" al dan niet als een enkele input van een drop-down (komma gescheiden), dan split het resultaat aan de bovenkant van de simplecsvimport script.

    Tot slot, je moet onthouden om indexen in de database voor de "ON DUPLICATE ..." aan het werk, auto stappen zal niet werken in dit geval, dus je moet een secundaire index ingesteld op de automatische verhoging tabellen, de tabellen dat Don 't Autotoenamegebieden en hebben unieke velden te werken met de single-index als dat de route die u zou willen gaan.

    Ik hoop dat dit helpt iemand!

    Cheers!

  72. phpwebdesigner2010
    08 december 2009 om 21:39

    Ik moet automatisch downloaden van gegevens uit een externe server. Het is een CSV-bestand, en ik moet het uit te pakken, en worden de gegevens opgeslagen in een MySQL database gemaakt dat ik. Er zijn meerdere databases. Het eerste deel is onder een van de databases dat iemand me geholpen hebben met en het werkt wonderwel. Ik een cron job en het downloadt het als automatisch gepland. Ik heb echter meer databases, en cant get de anderen aan het werk.

    DEZE SECTIE HIERONDER werkt prima!!
    --------------------------

    #! / Bin / bash

    deleteparam = '-delete-after';
    # Deleteparam = "
    # Directory = "-directory-prefix = / $ HOME / MyFolder / MyFolder / '
    directory = "
    # Userpwd = '-http-user = bla-http-password = blah'

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

    # If [-z "$ 1"], vandaar
    # Echo gebruik: $ 0 tabel
    # Exit
    # Fi

    ZIP = naam van gegevens bestand in remote server
    ZIP = `toupper $ ZIP"

    # Het bestand in de zip heeft een minder _
    DATA = naam van de tabel in mijn MySQL database
    DATA = "toupper $ data"

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

    cd / $ HOME / MyFolder / MyFolder /
    ####### Krijgt de residentiële

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

    unzip-o $ ZIP.csv.zip
    sleep 10
    ####### Laden

    wget-verbose $ deleteparam $ map $ userpwd https://mywebsite/myfolder/import.php?table = $ data
    slapen 300

    ###### Verwijdert u de bestanden

    rm $ ZIP.csv.zip
    rm $ DATA.csv
    sleep 10
    _ ---------------------------
    Dit alles mogelijk WERKEN WONDERFUL

    DIT IS WAT IK hulp nodig bij
    --------------------------
    1. Ik heb een script toe te voegen aan het bovenstaande bestand dat zal het downloaden van de foto's. Als je hieronder kunt zien Ik heb een script dat automatisch wordt de huidige datum en tijd die het script wordt gerund. Er server houdt pic van de laatste 7 dagen en wordt voortdurend bijgewerkt. Zodra dit script wordt gerund zal het downloaden van gegevens in de tabel gemaakt die ik.

    2. Dan, ik heb een script dat de MySQL database op zoek naar items die foto's hebben en dan halen de werkelijke foto's direct vanaf hun externe servers queries. Dit csv-bestand niet downloaden foto's, alleen gegevens die ik kan gebruiken om een ​​script uit te voeren om de foto's ophalen op een gegeven plek. Zie hieronder.
    Hieronder vindt u de instructies die ik kreeg.

    INSTRUCTIES
    Foto gegevens worden opgehaald door de HTTP. De foto's data wordt eenmaal per dag bijgewerkt en is beschikbaar voor downloaden als een CSV-bestand. U kunt dan een script schrijven met behulp van de gegevens uit het CSV-bestand om terug te wijzen naar de beelden op ons imago server. U moet een WAARDE VOOR DE query string last_updt> 'JJJJMMDD HH: MM: SS "voor de URL om gegevens te retourneren. Het veld last_updt is de datum waarde voor de laatste keer dat een foto is veranderd op de aanbieding.

    U moet de user_code en wachtwoord plaats houders (XXXX) te vervangen door de inloggegevens aan u verstrekt.

    Stap 1: Om ophalen van de primaire notering fotogegevens CSV-bestand naar de onderstaande URL.

    https://remotewebserver/Data3pv/DownloadBRSaction.asp?user_code=XXX&password=XXXX&query_str=last_updt% 20>% 20'YYYYMMDD% 20HH: MM: SS '& DATA_TYPE = FOTO'S

    Stap 2: De foto's tabel gegevens moeten downloaden in een CSV-formaat.

    Stap 3: Het gebruik van de Y-vlaggen en de ML nummer in de gegevens die u kunt koppelen terug naar ons imago locaties.

    Onze primaire beeld directory pad is als volgt:

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

    Bijvoorbeeld het primaire foto voor vermelding van het aantal 1899430 bevindt zich op

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

    Onze aanvullende image map pad structuur is als volgt:

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

    Bijvoorbeeld-De tweede foto voor het aanbieden van nummer 1899430 is gelegen op

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

  73. Nathan
    20 oktober 2009 om 05:59

    Hallo, hij vertelt me ​​het record tellen, maar niet zetten de gegevens in de database

    Hoop dat je kan helpen

    Nathan

  74. admin
    08 oktober 2009 om 16:48

    de opdracht is: afkappen tabelnaam.

    kun je de volgende on line 58:
    @ Mysql_query ("afkappen $ databasetable");

    maar dit is niet omkeerbaar! Wees dus voorzichtig

  75. MAFF
    07 oktober 2009 om 07:24

    Hoe kan ik mijn reeds gevulde tafel leeg voordat u het nieuwe bestand?
    of kan ik update van een reeds bestaande input?

    TRUNCATE, update? Hoe krijg ik dit in de query?

  76. admin
    De 05 oktober 2009 om 08:46

    @ Andy Broeders : Dit betekent dat de query probeert het invoegen van een record met een aantal kolommen die niet overeenkomen met die van de database tabel.

    1) Weet je zeker dat het CSV-bestand exact hetzelfde aantal kolommen als de tabel in de database heeft?
    2) Is het veld scheidingsteken in dit CSV-bestand echt een komma? of is het een tabblad voor bijvoorbeeld of een andere? Als het niet een komma, verander de waarde van $ fieldseparator op lijn 12
    3) De tabel moet er al worden gecreëerd in de database voordat u gegevens te laden in. Weet je zeker dat je het hebt?

  77. Andy Brotherton
    4 oktober 2009 om 14:14

    Hallo,

    Ik zou heel graag dit script gebruiken, maar ik weet niet zeker wat ik verkeerd doe. Ik krijg het zelfde probleem met de bovengenoemde gegevens niet laden in de db. Het vindt het juiste aantal rijen maar niets te zien in de db.

    Ik veranderde lijn 88 @ mysql_query ($ query) or die (mysql_error ());

    en krijg dit bericht "Kolom aantal komt niet overeen met waarde aantal in rij 1"

  78. admin
    03 oktober 2009 om 18:02

    @ Claus
    Hallo Claus.
    Is de CSV echt bevatten een record?

    Omdat het script het stadium bereikt waarin het uitgangen van het aantal records, ik neem het niet mislukken als hij is aangesloten op de database (regels 56-57) dus dat is het probleem niet.

    Het is mogelijk dat de query te voegen gegevens niet.
    Probeer vervanging van lijn 88 met:
    mysql_query ($ query) or die (mysql_error ());

    en kijk welke fout je krijgt.

  79. admin
    03 oktober 2009 om 17:58

    @ Okoth
    Hallo Okoth.

    Het meest waarschijnlijk, kunt u zich te ontdoen van de lijnen 33-54 en vervang ze met deze regel:

    $ Csvcontent = @ file_get_contents ("... https://");

    Vervang de stippen met de juiste url (directe url naar het CSV-bestand)

  80. admin
    03 oktober 2009 om 17:54

    @ Adrian
    Hallo Adrian.
    Drupal, zoals u opgemerkt, heeft complexe tabel structuren. Afhankelijk van wat voor soort gegevens die u importeert, is het zeer waarschijnlijk dat deze gegevens moet worden opgesplitst in meerdere tabellen, meestal met een gemeenschappelijk buitenlands-toets, zoals de node id.
    Helaas zou het bovenstaande script niet helpen dat te doen.

  81. Okoth
    18 september 2009 om 20:16

    Bedankt voor het script. Heel begrijpelijk.

    Hoe kan ik dit script aanpassen zodat het haalt en opslaan van een csv-bestand van het internet in MySQL?

  82. Adrian
    13 september 2009 om 19:03

    Hi All
    Ik ben Drupal gebruikt om een ​​nieuwe website te bouwen, de uitdaging die ik nu ben heb is dat ik nodig heb om gegevens te importeren uit een CSV-bestand in een MySQL database waarin gedeelde tabellen heeft daarom een ​​aantal van de velden in die ik nodig om gegevens te importeren csv zijn in verschillende delen van dezelfde database zal dit script werk voor mij? Als dit niet kunnen CSV-bestand worden geïmporteerd met een andere methode?

    Gelieve te adviseren, bedankt voor alle hulp.

    Wat
    Adrian

  83. Claus
    11 september 2009 om 12:59

    Hallo iedereen!

    Lijken het script werkt ... behalve dat het niet de gegevens om de mysql te schrijven hebben ...
    Net als bij Chris: Het script is voltooid, en zelfs uitgangen het record tellen, maar niet de database touch helemaal ... maar vertelt me: Gevonden in totaal 1 records in dit csv-bestand.

    Wat doe ik verkeerd doen (ben een noob op PHP en MySQL)

    Bedankt
    Claus

  84. admin
    26 augustus 2009 om 03:20

    Hoi Stanley, het probleem is met de enkele aanhalingstekens. De blog-software herschrijft ze hier. Vervang gewoon 'en' met '

    PS: het bovenstaande commando is om een ​​csv-bestand direct te laden in de database van de mysql prompt. Dit is leuk, maar niet in verband met het bovenstaande script :)

  85. Stanley Zdun
    24 augustus 2009 om 18:19

    het zegt om deze te laden in de databank

    LOAD DATA LOCAL infile 'pad' in de tabel tabelvelden beëindigd door ',' lijnen beëindigd door '\ n';

    verander ik het pad en de tafel zijn gaan op maar het geeft me een fout die haar de verkeerde syntax-code 1064

    Kan iemand mij wat advies over wat te doen

    dankzij
    Stan

  86. Gary Pearman
    23 februari 2009 om 07:25

    Met betrekking tot de aanhalingstekens probleem, kunt u gewoon gebruik maken van dit:

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

    Cheers,
    Gaz.

  87. admin
    18 december 2008 om 17:35

    Beste Chris,

    vervang dan:
    @ Mysql_query ($ query);
    met:
    @ Mysql_query ($ query) or die (mysql_error ());

    en laat me weten wat fout is je geeft

  88. Chris
    18 december 2008 om 14:31

    Hey iedereen,

    Hou van dit script, en het werkte prima, nu plotseling het script gewoon plaatst de administratie. Het script is voltooid, en zelfs uitgangen het record tellen, maar niet raakt de database op alle ...

    Enig idee?

    Bedankt
    C

  89. admin
    01 december 2008 om 14:10

    Hoi Mark,

    de eerste plaats is het te verwijzen naar het bestand dat u geselecteerd in het $ uitvoerbestand variabele.
    ten tweede, dit bestand moet beschrijfbaar zijn. Ik neem aan dat je Linux gebruikt, niet Windows, want dit is over het algemeen niet een probleem met Windows.
    Op linux, gewoon SSH op de machine, naar de map waar de output bestand is, en typ: chmod 777 bestandsnaam
    waar 'bestandsnaam' is de werkelijke bestandsnaam.
    Als u niet beschikt over SSH, vele FTP clients ondersteunen toestemming. Voor dit doel, FTP naar de map met het output bestand, selecteer vervolgens dit bestand, en zoek uit deze ftp-software de mogelijkheid om toestemming te wijzigen. Zet deze op 777, of 'lezen, schrijven, uitvoeren' voor iedereen.

  90. MarkFromHawaii
    19 november 2008 om 04:00

    Hi all,

    Bedankt voor het script. Ik ben een noob op PHP en MySQL, zodat ik echt zoiets als dit waarderen. Ik kreeg zoveel genereren van de "Bestand is niet beschrijfbaar, controleer machtigingen" foutmelding in mijn browser. Kan iemand uitleggen van de opmerking over het instellen van de toestemming naar 777? Ik ben met behulp van een Excel-gegenereerd. Csv-bestand? Dank bij voorbaat.

  91. gen
    29 oktober 2008 om 09:28

    Ik kan alleen maar de eerste regel van mijn CSV-bestand worden geïmporteerd in de database.
    Hier is een kopie van het logbestand:

    invoegen in de productie waarden (", '2008-10-21 ', '50', '50 ', '50', 'dit is de eerste noten lijn', 'dit is nota lijn 2', 'dit is nota lijn 3 ', '0000-00-00', '0000-00-00 ', '0000-00-00', '456 Morningside Ave ',' Ste. 512 ',' Brooklyn ',' NY ', '10023', 'Joe', 'Klant 1');
    invoegen in de productie waarden (", '2008-10-09 ', '50', '50 ', '50', 'dit is de eerste noten lijn',",",' 2008-10-09', '2008 . -10-14 ', '0000-00-00', '456 Morningside Ave ',' Ste 512 ',' Brooklyn ',' NY ', '10023', 'Joe', 'Klant 1');
    invoegen in de productie waarden (", '2008-10-14 ', '25', '25 ', '25', 'OPMERKINGEN 1',",",' 2008-10-14', '2008-10-17 ',' NULL ', '555 ergens', 'suite 123', 'nieuwe y' 'New York',, '10001 ',' Joe ',' Naam 1 ");
    invoegen in de productie waarden (", '2008-10-16 ', '45', '45 ', '45',",",",' 2008-10-16', '2008-10-24 ',' NULL',",",",",",' Tom',");
    invoegen in de productie waarden (", '2008-10-01 ', '34', '34 ', '34',",",",' 2008-10-02', '2008-10-04 ',' 2008-10-04',",",",",",' Steve',");
    invoegen in de productie waarden (", '2008-10-17 ', '50', '50 ', '50', 'dit is de eerste noten lijn',",",' 2008-10-03', '0000 . -00-00 ', '0000-00-00', '456 Morningside Ave ',' Ste 512 ',' Brooklyn ',' NY ', '10023', 'Joe', 'Klant 1');
    invoegen in de productie waarden (", '2008-10-18 ', '25', '25 ', '25', 'OPMERKINGEN 1',",",' 2008-10-04', '0000-00-00 ', '0000-00-00', '555 ergens ',' suite 123 ',' nieuwe y New York ',' ', '10001', 'Joe', 'Naam 1 ");
    invoegen in de productie waarden (", '2008-10-19 ', '45', '45 ', '45',",",",' 2008-10-05', '0000-00-00 ',' 0000-00-00',",",",",",' Tom',");
    invoegen in de productie waarden (", '2008-10-20 ', '34', '34 ', '34', 'nieuwe noten',",",' 2008-10-06', '0000-00-00 ', '0000-00-00',",",",",",' Steve',");
    invoegen in de productie waarden (", '2008-10-21 ', '12', '12 ', '12', 'nog nieuwer merkt',",",' 2008-10-07', '0000-00- 00 ', '0000-00-00',",",",",",' merk',");
    invoegen in de productie waarden (", '2008-10-22 ', '1', '0 ', '0',",",",' 2008-10-08', '0000-00-00 ',' 0000-00-00',",",",",",",");
    invoegen in de productie waarden (", '2008-10-23 ', '2', '0 ', '0',",",",' 2008-10-09', '0000-00-00 ',' 0000-00-00',",",",",",",");
    invoegen in de productie waarden (", '2008-10-24 ', '3', '0 ', '0',",",",' 2008-10-10', '0000-00-00 ',' 0000-00-00',",",",",",",");
    invoegen in de productie waarden (", '2008-10-15 ', '0', '0 ', '0', 'later',",",' 2008-10-11', '0000-00-00 ' , '0000-00-00',",",",",",",");
    invoegen in de productie waarden (", '2008-10-16 ', '0', '0 ', '0', 'later nog steeds',",",' 2008-10-12', '0000-00-00 ', '0000-00-00',",",",",",",");
    invoegen in de productie waarden (", '2008-10-17 ', '0', '0 ', '0', 'later nog steeds',",",' 2008-10-13', '0000-00-00 ', '0000-00-00',",",",",",");
    invoegen in de productie waarden (", '2008-10-18 ', '0', '0 ', '0', 'later nog steeds',",",' 2008-10-14', '0000-00-00 ', '0000-00-00',",",",",",");
    invoegen in de productie waarden (", '2008-10-19 ', '0', '0 ', '0', 'laatste',",",' 0000-00-00', '0000-00-00 ' , '0000-00-00',",",",",",");
    invoegen in de productie waarden (", '2008-10-01 ', '34', '34 ', '34', 'allernieuwste',",",' 2008-10-02', '2008-10-04 ', '2008-10-04',",",",",",' Bruce');
    invoegen in (","); productie waarden

    Het zegt dat het plaatsen van 20 records, maar alleen de eerste maakt het in de database. Alle gedachten?

  92. Enim
    23 oktober 2008 om 04:16

    het niet invoegen in de database tabel waar ik dat wil ingevoegd ..: (

  93. ingelogd
    20 oktober 2008 om 18:10

    Nice work chief ;-)

  94. Fidel Gonzo
    10 oktober 2008 om 05:12

    Hi all,

    Ik maakte een kleine wijziging aan uw code, dus het werkt als een CSV-importeur, zoals het hoort.

    CSV-s eerste regel moeten houden met de kolomnamen die u wilt importeren, dus verander de foreach lus:
    foreach (split ($ lineseparator, $ csvcontent) als $ line) {

    $ Lijnen + +;

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

    $ Lijn = str_replace ("\ r ","",$ lijn);

    / * Haal kolom Namen uit eerste regel van het CSV * /
    if ($ lijnen == 1) {
    $ Columns = explode ($ fieldseparator, $ regel);

    $ Columnsql = imploderen (",",$ kolommen);

    echo $ columnsql;
    voort te zetten;
    }

    /************************************
    Deze lijn ontsnapt aan het bijzondere karakter. te verwijderen wanneer er items zijn al ontsnapte in het CSV-bestand
    ************************************/
    $ Lijn = str_replace ("'"," \ ", $ regel);
    /*************************************/

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

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

    if ($ addauto)
    $ Query = "INSERT INTO $ databasetable ($ columnsql) waarden ('$ linemysql');";
    anders
    $ Query = "INSERT INTO $ databasetable ($ columnsql) waarden ('$ linemysql');";

    $ Query .= $ query. "\ N";

    @ Mysql_query ($ query);
    }

  95. admin
    6 oktober 2008 om 00:27

    Hoe groot is het bestand dat u probeert te importeren?
    in ieder geval, probeer dan het toevoegen van de volgende regel na de eerste opening van tags:
    set_time_limit (300);
    Dit geeft het script tot 5 minuten (300 seconden) van de uitvoeringstermijn.
    Vervanging van 300 met 0 zal toestaan ​​te nemen zoveel tijd als nodig is.

  96. Phillip
    01 oktober 2008 om 22:26

    Hi there, leuk script bedankt. Bij het uitvoeren krijg ik:
    Fatal error: Maximum uitvoeringstermijn van 30 seconden overschreden in op lijn 63

    Is er iets wat ik kan doen om dit te omzeilen?

  97. Roelof
    30 september 2008 om 08:06

    Robbie, bedankt voor je aanvulling, het is heel welkom. Helaas werkt het niet meteen toen ik het te kopiëren. Ik denk dat er iets ontbreekt, omdat de code is verdeeld over twee posten.

    Zou u de code zoals hier weergegeven? Is er iets ontbreekt?

  98. ASCASC
    27 september 2008 om 05:04

    Brad, als je had gedownload eerder dan vorige week, vervang dan de '<?' aan de top met '<? php' (verwijder spatie)

  99. Brad
    26 september 2008 om 14:43

    Ik krijg de eerste zo veel van het afgesneden en de rest gewoon code in mijn browser. Ik weet dat php werkt omdat de rest van de site werkt.
    Ik deed een upgrade naar php5 doet dat er toe?

  100. Robbie
    24 september 2008 om 14:27

    )
    / / Overslaan omdat het valt binnen de slechte array-elementen
    anders
    $ Newarray [$ y] = str_replace ('"',",$ linearray [$ y]);
    $ Linearray = array_values ​​($ newarray) / / de sleutels teruggezet naar de nieuwe array
    $ X + +;
    }
    }
    }

  101. Robbie
    24 september 2008 om 14:27

    Nou, hier is de oplossing op mijn vorige reactie:

    Steek dit in tussen:

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

    ... Voegen codefragment hieronder ....

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

    Vindt en houdt alle "Stuff, meer dingen" samen voor het imploderen.

    $ A = "";
    $ B = "";
    $ Qoutecount = 0;
    for ($ x = 0; $ x -1) {
    $ Qoutecount + +;
    if ($ qoutecount == 1)
    $ A = $ x; / / bewaar het in eerste aanleg
    elseif ($ qoutecount == 2) {
    $ Quotecount = 0;
    $ B = $ x; / / bewaar de tweede aanleg
    / / Dat doet ... verzamelen alle elementen van $ a naar $ b $ a en negeren elementen iets na $ a naar $ b in de nieuwe array;
    $ Newa = ""; / / initialiseren nieuwe string.
    for ($ z = $ a, $ z $ a & & $ y

  102. Robbie
    24 september 2008 om 12:19

    Houdt geen rekening met gebieden zoals deze lijn:
    Fname, lname, "Company, Inc", stad, staat, Zip

    Bedrijf en Inc krijgt gesplitst in twee verschillende kolommen.

  103. Steve
    12 september 2008 om 12:19

    Rengaraj,
    het CSV-bestand moet in dezelfde plaats als de PHP-bestand.
    Ook hoef je niet echt aan dezelfde csv-bestand naam te gebruiken.
    bbqrest.csv is een voorbeeld, het bestand deze naam vervangen door uw eigen.

  104. Rengaraj
    12 september 2008 om 12:16

    Kan iemand een antwoord snel Ik heb een csv-bestand bbqrest.csv op de juiste pad (root) ..

  105. Rengaraj
    12 september 2008 om 12:11

    Ik krijg deze foutmelding Bestand niet gevonden. Zorg ervoor dat u hebt opgegeven het juiste pad.

  106. ollyd
    09 september 2008 om 06:35

    Het zou een goed idee om toe te voegen te voorkomen headers binnen de CSV van indiening in de database. Of om een ​​script dat trekt de eerste rij en creëert een db met behulp van deze waarden als de kolomnamen te maken.

  107. Joseph
    03 september 2008 om 12:39

    Steve,

    Je zou dit script in een web-toegankelijk map, na het veranderen van de variabelen die veranderd moeten worden. Lees het commentaar in het script om uit te vinden wat je nodig hebt om aan te geven. Bel vervolgens het script in een web browser, zoals:

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

  108. steve
    31 augustus 2008 om 19:04

    Totale newbie - scheurt mijn haren uit probeert te importeren in Excel csv phpMyAdmin (op een Mac). Zou graag willen weten precies waar en wat ik doe met dit php script ...?

  109. dani
    25 augustus 2008 om 20:06

    Wow cool is ... had idee na het lezen van uw codering ... veel dank

  110. »CSV import
    07 juni 2008 om 10:29
  111. Importeer een komma gescheiden bestand in MySQL met een PHP-script | eCommerce & SEO
    30 november 2007 om 11:59
  112. hfvd
    24 oktober 2007 om 12:44

    Hallo daar, een kleine wijziging voor auto verhogen waarden in kolom 1 (id veld)

    zie variabele $ count.

    ola, Enrico.

    / / $ Con = @ mysql_connect ($ databasehost, $ database invoeren, $ databasepassword) or die (mysql_error ());
    / / @ Mysql_select_db ($ databasenaam) or die (mysql_error ());

    $ Lijnen = 0;
    $ Query = "";
    $ Linearray = array ();

    $ Count = 0;

    foreach (split ($ lineseparator, $ csvcontent) als $ line) {

    $ Count = $ count + 1;

    $ Lijnen + +;

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

    $ Lijn = str_replace ("'"," \ ", $ regel);

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

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

    $ Query = "INSERT INTO` uw db tabel `VALUES ('$ tellen', '$ linemysql');";

    $ Query .= $ query. "\ N";

    @ Mysql_query ($ query);
    }

    / / @ Mysql_close ($ con);

  113. »Het omzetten van csv naar SQL met behulp van php @ The Coding Pad: Programmeren blog, discussies, tutorials, middelen
    24 september 2007 om 14:12
  114. Len Lulow
    28 februari 2007 om 20:11

    Thanks a lot deze opgeslagen veel tijd! Leuk script.

  115. S. Martinez
    22 februari 2007 om 12:17

    Ik gebruik meestal phpmyadmin, maar waar, in het geval men niet hebt geïnstalleerd, en heeft geen shell-toegang (zoals de meeste van de shared hosting providers), dit kan komen in zeer handig.

  116. Jake
    25 februari 2007 om 06:31

    Erg handig, dank je.