PHP script για την εισαγωγή δεδομένων csv σε mysql

19 Φεβρουαρίου, 2007

Αυτή είναι μια απλή δέσμη ενεργειών που θα σας επιτρέψει να εισάγετε δεδομένα CSV στη βάση δεδομένων σας. Αυτό έρχεται βολικό, επειδή μπορείτε να επεξεργαστείτε απλά τα κατάλληλα πεδία, ανεβάστε μαζί με το csv και καλούν από το διαδίκτυο και θα κάνουμε τα υπόλοιπα.

Σας επιτρέπει να καθορίσετε το οριοθέτη σε αυτό το αρχείο csv, αν είναι σε κώμα, μια καρτέλα κλπ. Επίσης, σας επιτρέπει να επιλέξετε το διαχωριστικό γραμμής, σας επιτρέπει να αποθηκεύσετε την έξοδο σε ένα αρχείο (γνωστό ως δεδομένων SQL χωματερή).

Θα σας επιτρέπει επίσης να συμπεριλάβει ένα κενό πεδίο στην αρχή της κάθε γραμμής, η οποία συνήθως είναι ένας ακέραιος αριθμός προσαύξησης auto πρωτεύον κλειδί.

Αυτό το σενάριο είναι χρήσιμο κυρίως αν δεν έχετε phpmyadmin, ή δεν θέλετε την ταλαιπωρία της υλοτομίας και συνεχίζουν να προτιμούν λίγες λύση κλικ, ή απλά είναι μια γραμμή εντολών τύπος.
Απλά βεβαιωθείτε ότι ο πίνακας είναι ήδη δημιουργηθεί πριν προσπαθήσετε να απορρίπτουν τα δεδομένα.
Παρακαλείστε να στείλετε σχόλια σας, αν έχεις οποιαδήποτε αναφορά σφάλματος.

Κατεβάστε το αρχείο εδώ

Ετικέτες:
  1. Εργασία και parsing αρχείων κειμένου CSV & PHP
    15η Μαΐου, 2011 στις 17:52
    # 1
  2. Joln
    11 Μαΐου 2011 07:52

    Μεγάλη script! Tnx πολλά

  3. UMAir
    2, Μάη του 2011 στη 7:39

    Γεια σου ...
    Είμαι αντιμετωπίζει ένα πρόβλημα, όταν χρησιμοποιώ αυτή, δείχνοντας του ένα λάθος λέγοντας
    "Αποδοκιμασμένα: Λειτουργία split () έχει καταργηθεί στο C: \ WAMP \ www \ test1 \ simplecsvimport.php στη γραμμή 64
    Το αρχείο δεν είναι εγγράψιμος, ελέγξτε τα δικαιώματα. Βρέθηκαν συνολικά 41 εγγραφές σε αυτό το αρχείο CSV. "

    Pls απάντηση, τι είναι λάθος!
    ευχαριστώ εκ των προτέρων!

  4. justkid
    7 Απρίλη 2011 στις 10:25

    Είμαι πραγματικά συγχέεται με αυτόν τον κωδικό!
    αλλά εγώ συνηθισμένος να δοκιμάσετε επάνω!
    BTW, πώς τον κώδικα html ή το πεδίο για να καλέσετε αυτόν τον κώδικα

  5. Jorge Dias
    14 του Μάρτη, 2011 στις 19:01

    Ευχαριστώ, πολύ καλό εισαγωγέα csv.
    Αλλά βρήκα ένα μικρό πρόβλημα, λειτουργεί μόνο με το αρχείο CSV με τη δομή: "field1", "field2", "Πεδίο3", κλπ. αλλά εγώ Hava ένα αρχείο CSV ως εξής: field1? Field2? Filed3? Κλπ

    Το μόνο πράγμα που μπορώ να αλλάξω είναι $ fieldseparator αλλά πώς μπορώ να πω », το σενάριο ότι ο φάκελος δεν χρησιμοποιεί" (διαχωριστή πεδίου);
    ideia μου ήταν ένα combobox με $ fieldseparator (ή ?) και ένα άλλο με $ fielddelimiter ("ή τίποτα)

    Ευχαριστώ εκ των προτέρων.

  6. Σκουριασμένος
    3 Φλεβάρη, 2011 στις 14:56

    Κάθε ιδέα για το πώς να πάρει αυτό το χειρόγραφο στην εργασία για τους τομείς που περικλείονται με διπλά εισαγωγικά, έτσι ώστε να μην τα πεδία με κόμματα σε αυτές παίρνουν ως μια νέα καταχώρηση;

    Έχω τα στοιχεία που περιλαμβάνει κόμματα, όπως τα ποσά σε δολάρια και ένα τμήμα σχολίων, όπου οι χρήστες θα μπορούσε να έχει χρησιμοποιηθεί ένα κόμμα. Χρειάζομαι όλο το εισαγόμενο τομέα και αυτό το σενάριο να τους αντιμετωπίζει ως νέα πεδία.

  7. qwewe
    23 Ιανουαρίου 2011 στις 14:56

    @ Cloyd Mark
    "Address = ΑΞΙΩΝ (διεύθυνση)
    Παίρνω ένα λάθος εδώ Parse error: συντακτικό λάθος, αναπάντεχο '='

  8. ronbowalker
    15 Ιανουαρίου 2011 στις 17:54

    @ Joofoo
    Έχω φορτωθεί τον κωδικό σας, αλλά δεν έχω ενημερωθεί πληροφορίες για τη βάση δεδομένων MySQL ...

    CSV περιέχει:
    Κεφαλίδα -> όνομα χρήστη, κωδικός πρόσβασης, το μήνυμα, ηλεκτρονικό ταχυδρομείο, εικόνα, ημερομηνία
    ROW2 -> Bill, μάγκα,,,,
    Row3 -> Jane, κορίτσι,,,,
    Row4 -> David, παιδί,,,,

    Και εδώ είναι ο κωδικός ...:
    <? Php

    / / Set-up από το αρχείο iphonelogin.php στο "εξ αποστάσεως" φάκελο ...
    / * Σύνδεση με το * db /
    / / $ Link = mysql_connect ('ronbo.db.6405862.hostedresource.com »,« ronbo »,« Pepper0689 ») ή να πεθάνει (« δεν μπορεί να συνδεθεί με την DB)?
    / / Mysql_select_db («ronbo ', $ link) ή να πεθάνει (« Δεν μπορείτε να επιλέξετε την DB)?

    / / https://www.ihappyapps.com/DataFolder/loader.php
    /********************************/
    / * Κώδικας σε https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Επεξεργασία των καταχωρήσεων παρακάτω, για να αντανακλούν τις κατάλληλες τιμές
    /********************************/
    $ Databasehost = "dbhost"?
    $ Databasename = "όνομα"?
    $ Databasetable = "τραπέζι"?
    $ Databaseusername = "όνομα χρήστη"?
    $ Databasepassword = "password"?
    $ Fieldseparator = ","?
    $ Lineseparator = "\ n"?
    $ Csvfile = "spreadsheet.csv"?
    /********************************/
    $ Addauto = 1?
    /********************************/
    $ Σώσει = 0?
    $ Αρχείο_εξόδου = "output.sql"?
    /********************************/

    if (! file_exists ($ csvfile)) {
    echo "Server πήρε το αίτημά σας, αλλά το αρχείο CSV που θέλετε να φορτώσετε στη βάση δεδομένων δεν είναι παρούσα ... .. \ n"?
    εξόδου?
    }

    $ Chunksize = 1 * (1024 * 1024)?
    $ File = fopen ($ csvfile, "rb")?
    if (! $ file) {
    echo "Σφάλμα δεδομένων άνοιγμα του αρχείου \ n".?
    εξόδου?
    }

    $ Size = filesize ($ csvfile)?

    if (! $ μέγεθος) {
    echo "Το αρχείο είναι άδειο \ n".?
    εξόδου?
    }

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) ή πεθαίνουν (mysql_error ())?
    @ Mysql_select_db ($ databasename) ή πεθαίνουν (mysql_error ())?

    $ Γραμμές = 0?
    $ Ερωτήματα = ""?
    ενώ (! feof ($ file)) {
    $ Csvline = fgets ($ file, $ chunksize)?

    $ Γραμμές + +?
    if ($ γραμμές <2) να συνεχίσει?

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

    $ Γραμμή str_replace = ("\ r ","",$ γραμμής)?

    /************************************************* ************************************************** *********
    Η γραμμή αυτή διαφεύγει τον ειδικό χαρακτήρα. αφαιρέστε το αν οι συμμετοχές είναι ήδη διαφύγει στο αρχείο csv
    ************************************************** ************************************************** ********/
    $ Γραμμή ("'"," str_replace = \ '", $ line)?
    /************************************************* ************************************************** ********/

    $ Linearray = εκραγεί ($ fieldseparator, $ line)?

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

    $ Εισαγάγετε ερώτημα "= σε $ databasetable αξίες (« $ linemysql');";

    if ($ σώσει) $ ερωτήματα .= $ ερώτημα. "\ N"?

    @ Mysql_query ($ query)?
    echo $ γραμμές "\ n".?
    }
    fclose ($ file)?

    $ Γραμμές -= 3?

    @ Mysql_close ($ con)?

    <>

    Πραγματικά, θα μπορούσε να χρησιμοποιήσει κάποια βοήθεια στο να πάρει αυτό το έργο ...
    Ron

  9. joofoo
    11 Γενάρη 2011 στις 11:16

    @ Roy
    Άλλαξα το script σας, έτσι ώστε να καταναλώνει πολύ λιγότερη μνήμη κατά την επεξεργασία μεγάλων αρχείων (χτύπησε php όριο μνήμης όταν προσπάθησα να το χρησιμοποιήσετε σε ένα 100MB αρχείο CSV). Οι αλλαγές έχουν ως εξής:


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

    $ Size = filesize ($ csvfile)?

    if (! $ μέγεθος) {
    echo "Το αρχείο είναι άδειο \ n".?
    εξόδου?
    }

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) ή πεθαίνουν (mysql_error ())?
    @ Mysql_select_db ($ databasename) ή πεθαίνουν (mysql_error ())?

    $ Γραμμές = 0?
    $ Ερωτήματα = ""?
    ενώ (! feof ($ file)) {
    $ Csvline = fgets ($ file, $ chunksize)?

    $ Γραμμές + +?
    if ($ γραμμές <2) να συνεχίσει?

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

    $ Γραμμή str_replace = ("\ r ","",$ γραμμής)?

    /************************************************* ************************************************** *********
    Η γραμμή αυτή διαφεύγει τον ειδικό χαρακτήρα. αφαιρέστε το αν οι συμμετοχές είναι ήδη διαφύγει στο αρχείο csv
    ************************************************** ************************************************** ********/
    $ Γραμμή ("'"," str_replace = \ '", $ line)?
    /************************************************* ************************************************** ********/

    $ Linearray = εκραγεί ($ fieldseparator, $ line)?

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

    $ Εισαγάγετε ερώτημα "= σε $ databasetable αξίες (« $ linemysql');";

    if ($ σώσει) $ ερωτήματα .= $ ερώτημα. "\ N"?

    @ Mysql_query ($ query)?
    echo $ γραμμές "\ n".?
    }
    fclose ($ file)?

    $ Γραμμές -= 3?

    @ Mysql_close ($ con)?

    Σας ευχαριστώ,

  10. Khaled Α
    11 Γενάρη 2011 στις 10:35

    @ Khaled Α
    Πώς μπορώ να κάνω εξαγωγή UTF8 excel να output.sql
    ευχαριστίες

  11. Khaled Α
    11 Γενάρη 2011 στις 9:46

    Δοκίμασα το σενάριο, αλλά η output.sql είναι writting περίεργα πράγματα,
    εισαγάγει στον test_excel τιμές («PK |!????? Q k5 q Q k5 q Q K5 q ....

    σαν αυτά τα πράγματα
    Πώς μπορώ να διορθώσω αυτό το πρόβλημα. οποιαδήποτε ειδική μορφή για το φύλλο Excel;

  12. Λαβύρινθος
    30ης Δεκεμβρίου 2010 στις 18:57

    Γεια σας παιδιά, απλά ήθελε να αφήσει όλοι γνωρίζετε ότι έχω βρεθεί κάποιος να μου γράψει το πραγματικό πρόγραμμα που χρειάζομαι.

  13. Λαβύρινθος
    29 Δεκεμβρίου, 2010 στις 1:31

    @ Warren

    /********************************/
    Αυτό το αρχείο περιλαμβάνει πολλές απόπειρες αλλαγές που έγιναν από Warren (όχι προγραμματιστής) στις 28 Δεκέμβρη του 2010 και μετά, με βάση τις παρατηρήσεις επί του τόπου προέλευσης και άλλες πληροφορίες ώστε να καταστεί το πρόγραμμα αυτό σε εκείνο που χρειάζεται. Αυτό είναι πολύ ελλιπής. Η βοήθεια είναι πιο αποδεκτός και χρειάζεται πάρα πολύ.

    Γραμμές προστίθεται για τη δημιουργία πεδίων εισαγωγής για όνομα της βάσης διεύθυνση URL του ιστότοπου και τον κωδικό πρόσβασης κλπ.
    /********************************/

    Καλώς ήλθατε στο διακομιστή Upload Utility

    Αυτό το πρόγραμμα τρέχει από το PC σας για τη συμπλήρωση δύο άδεια τραπέζια σε μια νέα MySQL βάση δεδομένων στον ιστοχώρο σας από: φόρτωμα κάθε όνομα αρχείου λιγότερο την επέκταση, με έναν μοναδικό αριθμό μπροστά ως έναν μετρητή, να keywords_categories πίνακα και στη συνέχεια εκχωρεί στη συνέχεια τον αριθμό 1 στην κενή στήλη μπροστά από την πρώτη Στήλη των δεδομένων από το αρχείο, και αυξάνει τον αριθμό κατά ένα για κάθε μετέπειτα αρχείων δεδομένων που επεξεργάζεται από την εν λόγω κατάλογο, έτσι ώστε ο αριθμός assigend στο όνομα της κατηγορίας στον πίνακα που ταιριάζει με τις λέξεις κλειδιά που ανήκουν σε αυτόν που είναι στη συνέχεια φορτώθηκε σε πίνακα λέξεων-κλειδιών.

    Αυτό γίνεται για όλα τα αρχεία CSV σε έναν συγκεκριμένο κατάλογο για να σας το.

    Αγνοεί τις πέντε πρώτες γραμμές στο αρχείο CSV σας.

    URL Website:
    Όνομα βάσης δεδομένων:
    Βάση δεδομένων Όνομα χρήστη:
    Database Password:
    Path of Directory που περιέχει τα αρχεία για μεταφόρτωση:

    /********************************/
    Ερώτηση
    Πώς μπορώ να πάρω πάνω από τα δεδομένα από τα κουτιά εισροή σε πρόγραμμα ώστε να ταιριάζει ο οποίος ζήτησε στη συνέχεια;
    /********************************/

    <? Php
    /********************************/
    Γραμμή που προστίθεται για την πρόληψη timeout σε μεγαλύτερα αρχεία.
    /********************************/

    συνάρτηση set_time_limit (0)?

    /********************************/
    Πάρτε το αρχείο ονόματα των αρχείων που θα μεταποιηθούν, αφαιρέστε επέκταση ονόματος αρχείου στη συνέχεια τις χρησιμοποιεί για να φορτώσετε τα ονόματα της κατηγορίας να keywords_categories πίνακα.
    /********************************/

    /********************************/
    Καταργεί το αρχείο επεκτάσεις όνομα
    αντιγράφονται από το www perlmonks org /? node_id = 151232
    /********************************/

    υπο parse_out_extension {
    die ("Δεν υπάρχει όνομα αρχείου για να αναλύσει. \ n") αν (@ _!)?

    μου ($ file) = @ _?
    @ μου κομμάτια?

    {Χάρτης push (@ κομμάτια, $ _)} split (/ \ /, $ file.)?

    $ Τέλος ποπ μου = (@ τεμάχια)?
    $ File = ~ s / \ $ τέλος / /.?

    return ($ file) αν το $ file?

    /********************************/
    / * Πρωτότυπο κώδικα σε https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Επεξεργασία των καταχωρήσεων παρακάτω, για να αντανακλούν τις κατάλληλες τιμές
    /********************************/
    $ Databasehost = "localhost"?
    $ Databasename = "test"?
    $ Databasetable = "δείγμα"?
    $ Databaseusername = "test"?
    $ Databasepassword = ""?
    $ Fieldseparator = ","?
    $ Lineseparator = "\ n"?
    $ Csvfile = "filename.csv"?
    /********************************/
    / * Θα θέλατε να προσθέσετε ένα ampty τομέα κατά την έναρξη αυτών των αρχείων;
    / * Σημείωση από Warren, στην περίπτωση των λέξεων-κλειδιών που είναι η πρώτη στήλη δεδομένων σε κάθε αρχείο, σε ένα αρχείο με βάση το αρχείο αυτό το νέο κενό χώρο coum Frot φασαρία για τις λέξεις-κλειδιά πρέπει να αλλάξει έτσι ώστε να συλλαμβάνει τον αριθμό που αντιστοιχεί στην το όνομα της κατηγορίας που αποτελείται από το όνομα του αρχείου λιγότερο την επέκταση και την τοποθετεί σε αυτό το νέο κενό πρώτη στήλη.
    / * Αυτό είναι χρήσιμο εάν έχετε έναν πίνακα με το πρώτο πεδίο είναι ένας ακέραιος auto_increment. Σημείωση από τον Warren. Αυτό είναι ό, τι είναι αναγκαίο στην περίπτωση του αρχείου ονομάτων λιγότερο exteniosn που upoaded να keywords_categories πίνακα.
    / * Και το αρχείο CSV δεν έχει όπως είναι κενό πεδίο πριν από τις εγγραφές.
    / * Ορισμός 1 για ναι και 0 για όχι. ΠΡΟΣΟΧΗ: μην τεθεί στο 1 εάν δεν είστε σίγουροι.
    / * Αυτό μπορεί χωματερή των δεδομένων σε λάθος πεδία, εάν αυτό το επιπλέον πεδίο δεν υπάρχει στον πίνακα. Σημείωση από τον Warren πιθανόν δεν χρειάζεται αυτό το αρχείο μου περίπτωσή μου, αλλά μόνο μια εικασία εκ μέρους μου, αλλά είναι απαραίτητο να δούμε εάν υπάρχει ανάγκη.
    /********************************/
    $ Addauto = 1?
    /********************************/
    / * Θέλετε να αποθηκεύσετε το mysql ερωτημάτων σε ένα αρχείο; Εάν ρυθμιστεί ναι $ σώσει προς 1.
    / * Δικαίωμα επί του φακέλου θα πρέπει να οριστεί σε 777. Είτε ανεβάσετε ένα δείγμα αρχείου μέσω ftp και
    / * Αλλάξετε τα δικαιώματα, ή να εκτελέσει κατά την προτροπή: output.sql touch & & chmod 777 output.sql
    /********************************/
    $ Σώσει = 0?
    $ Αρχείο_εξόδου = "output.sql"?
    /********************************/

    if (! file_exists ($ csvfile)) {
    echo "Το αρχείο δεν βρέθηκε. Βεβαιωθείτε ότι έχετε ορίσει τη σωστή διαδρομή \ n ".?
    εξόδου?
    }

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

    if (! $ file) {
    echo "Σφάλμα δεδομένων άνοιγμα του αρχείου \ n".?
    εξόδου?
    }

    $ Size = filesize ($ csvfile)?

    if (! $ μέγεθος) {
    echo "Το αρχείο είναι άδειο \ n".?
    εξόδου?
    }

    $ Csvcontent fread = ($ file, $ μέγεθος)?

    fclose ($ file)?

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) ή πεθαίνουν (mysql_error ())?
    @ Mysql_select_db ($ databasename) ή πεθαίνουν (mysql_error ())?

    /********************************/
    Για να αποφευχθεί η εισαγωγή τους πρώτους τέσσερις σειρές adveristing κειμένου κεφαλίδας και σε μια κενή γραμμή. Η γραμμή ισούται με μηδέν κώδικας αντικαταστάθηκε, κάτω από τον κωδικό.
    /********************************/

    $ Γραμμές = 1? (Η τιμή του μετρητή είναι 1)
    $ Ερωτήματα = ""?
    $ Linearray = array ()?

    foreach (split ($ lineseparator, $ csvcontent) όπως $ γραμμή) {

    $ Γραμμές + +? (Παραπέμπει την πρώτη γραμμή # 2 (επικεφαλίδα)

    if ($ γραμμές> = 5) {(Start στο # 5 "κάτι μεγαλύτερο ή ίσο του 5;)

    $ Ερωτήματα = ""?
    $ Linearray = array ()?

    foreach (split ($ lineseparator, $ csvcontent) όπως $ γραμμή) {

    $ Γραμμές + +?

    $ Line = trim ($ γραμμή, "\ t")?

    $ Γραμμή str_replace = ("\ r ","",$ γραμμής)?

    /************************************
    Η γραμμή αυτή διαφεύγει τον ειδικό χαρακτήρα. αφαιρέστε το αν οι συμμετοχές είναι ήδη διαφύγει στο αρχείο csv
    ************************************/
    $ Γραμμή ("'"," str_replace = \ '", $ line)?
    /*************************************/

    $ Linearray = εκραγεί ($ fieldseparator, $ line)?

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

    if ($ addauto)
    $ Εισαγάγετε ερώτημα "= σε $ databasetable αξίες (",'$ linemysql');";
    αλλού
    $ Εισαγάγετε ερώτημα "= σε $ databasetable αξίες (« $ linemysql');";

    $ Ερωτήματα .= $ ερώτημα. "\ N"?

    /************************************
    Αυτό το κομμάτι του κώδικα παρακάτω προστέθηκε για να δείξει τώρα μηνύματα λάθους.
    ************************************/

    $ Result = mysql_query ($ query)?

    / / Έλεγχος αποτέλεσμα
    / / Αυτό δείχνει το πραγματικό ερώτημα αποστέλλεται στην MySQL, και το σφάλμα. Χρήσιμο για τον εντοπισμό σφαλμάτων.
    if (! $ result) {
    $ Μήνυμα «έγκυρο ερώτημα: '=. mysql_error (). "\ N"?
    $ Μήνυμα «Ολόκληρο το ερώτημα:« .=. $ Query?
    die ($ μήνυμα)
    }

    @ Mysql_close ($ con)?

    if ($ σώσει) {

    if (! is_writable ($ αρχείο_εξόδου)) {
    echo "Το αρχείο δεν είναι εγγράψιμος, τα δικαιώματα ελέγχου. \ n"?
    }

    else {
    $ File2 = fopen ($ αρχείο_εξόδου, "w")?

    if (! $ file2) {
    echo "Σφάλμα στην εγγραφή στο αρχείο εξόδου \ n".?
    }
    else {
    fwrite ($ file2, $ ερωτήματα)?
    fclose ($ file2)?
    }
    }

    }

    echo "Βρέθηκαν συνολικά $ γραμμών εγγραφές σε αυτό το αρχείο csv. \ n"?

    ;>

  14. Λαβύρινθος
    28 Δεκ 2010 στις 22:30

    Απλά μια μικρή διόρθωση στο αίτημά μου, οι δύο πίνακες στη βάση δεδομένων MqSQL ανέφερα είναι στην πραγματικότητα ονομάζεται:

    keywords_categories

    λέξεις-κλειδιά

  15. Λαβύρινθος
    28 Δεκ 2010 στις 22:10

    @ Warren

    Επίσης, μόνο από περιέργεια θα μπορούσε να το επεξεργάζεται επίσης ένα αρχείο txt, (που διαθέτει μόνο μια λίστα με λέξεις σ 'αυτό), με τον ίδιο τρόπο;

    (Είμαι νέος σε αυτό, και ξέρω ότι μπορεί να ζητά πολλά, οπότε αν κάποιος μπορούσε να πάρει αυτό το μικρό έργο του για μένα, αν είναι σκόπιμο, ίσως θα μπορούσαμε να συζητήσουμε μου πληρώνουν ένα μικρό ποσό για το χρόνο τους, όσον αφορά στις αλλαγές στο ανταποκρίνονται στις ανάγκες μου; Παρακαλώ επιτρέψτε μου να ξέρω.)

    e-mail μου είναι: wr.spence @ hotmail.com

  16. Λαβύρινθος
    28 Δεκ 2010 στις 21:37

    Δεν είμαι προγραμματιστής. Βλέπω το σενάριό σας και θα μπορούσε να είναι κοντά σε αυτό που χρειάζομαι, ή θα μπορούσε να αποτελέσει ίσως τη βάση του ό, τι χρειάζομαι, δεν είμαι σίγουρος.

    Πρέπει να εκτελέσετε την ίδια λειτουργία ανεβάσετε ξανά και ξανά, αλλά από μια διαφορετική υπο-κατάλογο κάθε φορά από το σκληρό δίσκο μου, για μια λίστα των αρχείων csv, και σε μια διαφορετική MySQL DB κάθε φορά (σε differret ιστοχώρο κάθε φορά). Στις περισσότερες περιπτώσεις η db δεν θα έχει όλα τα δεδομένα σε αυτό, αλλά θα ήταν ιδανικό (αλλά δεν είναι απαραίτητο), αν το σενάριο θα μπορούσε να εξακολουθούν να εργάζονται με db που διέθεταν τα δεδομένα και να μη θίγει τα υπάρχοντα δεδομένα).

    Χρειάζομαι να συνδεθείτε στο db στο διακομιστή (θα πρέπει να με ρωτούν για το URL της τοποθεσίας και ονόματα χρήστη και κωδικό πρόσβασης db, κλπ).

    Χρειάζομαι κάτι που μου επιτρέπει να αναζητήσετε και να επιλέξετε ένα όνομα κατάλογο στο σκληρό δίσκο μου, ή συμπληρώστε το.

    Στη συνέχεια της διαδικασίας κάθε αρχείο CSV σε αυτόν τον κατάλογο, το ένα μετά από άλλο, ως εξής:

    Σε κάθε αρχείο θα πρέπει να λάβει πρώτα το όνομα του αρχείου (μείον την παράταση) και ανεβάστε το στο db στην κατηγορία πίνακα. Ο πίνακας αυτός περιέχει μια αριθμημένη κλειδί το οποίο στη συνέχεια ανατίθεται σ 'αυτό το όνομα.

    Χρειάζομαι τότε το σενάριο να ανεβάσετε μόνο τη Στήλη λέξη (1ο Colum των δεδομένων) της εν λόγω αρχείο σε λόγια πίνακα και προσθέστε την αντίστοιχη nubmer για το όνομα της κατηγορίας από τον πρώτο φάκελο.

    Θα πρέπει να σημειωθεί ότι το αρχείο CSV συχνά περιέχει τρεις γραμμές του κειμένου κεφαλίδας και μια κενή γραμμή, οι τέσσερις εκ των οποίων θέλω αγνοηθεί και δεν φορτώθηκε. Συχνά υπάρχουν κενές γραμμές στο te eend του αρχείου Θέλω επίσης να αγνοήσουμε, αυτές, καθώς αγνοεί και κάθε άλλη στήλες που μπορεί ή δεν μπορεί να είναι στο αρχείο CSV. Σε ορισμένες περιπτώσεις, το αρχείο CSV μπορεί να μην έχει καμία επικεφαλίδα ή οποιοδήποτε άλλο στήλες.

    Στη συνέχεια επόμενο αρχείο, μέχρι να εξαντληθεί αρχεία στον κατάλογο.

    Στη συνέχεια θα ήθελα να μου πει "Process πλήρης.", Και αν τυχόν λάθη για να μου πει.

    Μπορεί κάποιος από εσάς παιδιά με βοηθήσετε με αυτό;

  17. Alfa
    26 Δεκεμβρίου 2010 στις 18:32

    Σας ευχαριστώ για την κοινή χρήση του Excel σε mysql σενάριο, αυτό είναι πολύ χρήσιμο για μένα.

  18. pruthvi
    24 Δεκεμβρίου 2010 στις 16:09

    ya τα έργα κωδικό αλλά ν.π. είμαι πάρει τα δεδομένα μου που περικλείεται σε εισαγωγικά @ Suman

  19. Suman
    23 Δεκ 2010 στις 14:18

    Suman :
    @ Pruthvi
    Γεια σου,
    Παρακαλούμε χρησιμοποιήστε την παρακάτω συγκεκριμένο κώδικα ... ...

  20. Suman
    23 Δεκ 2010 στις 14:16

    @ Pruthvi

    Γεια σου,

    Παρακαλούμε χρησιμοποιήστε την παρακάτω συγκεκριμένο κώδικα ... ...

  21. Suman
    23 Δεκ 2010 στις 14:12

    Τρίβουμε Κώδικα Είναι πραγματικά χρήσιμο για όλους developer PHP.

  22. pruthvi
    23 Δεκ 2010 στις 9:48

    μπορείτε να εξηγήσετε τον κωδικό σας που θέλετε να αντικαταστήσετε @ mysql_query ($ query)? με την u δηλώσεις έδωσε, αλλά εμφανίζει ένα λάθος $ μήνυμα είναι απροσδιόριστο Andrew Ψάρια @

  23. pruthvi
    23 Δεκ 2010 στις 9:31

    ίδιο πρόβλημα με μένα @ Fish Andrew

  24. pruthvi
    23 Δεκ 2010 στις 09:30

    τελευταία εξέλιξη ο κωδικός μπορεί να εντοπίσει την μη των γραμμών στο αρχείο CSV, αλλά δεν εμφανίζει το της στον πίνακα

  25. pruthvi
    23 Δεκ 2010 στις 8:52

    ο κώδικας επιστρέφει μια δήλωση ότι couldnt βρείτε το αρχείο csv ...
    wat θα μπορούσε να είναι το πρόβλημα ....

  26. Andrew Ψάρια
    10 Δεκ, 2010 στις 15:28

    Εντάξει, βρέθηκε το πρόβλημα. Είχα mispelt το όνομα του πίνακα. Αλλά βρήκε μόνο το θέμα όταν είχα προστεθεί το ακόλουθο κώδικα που θα επιστρέψει ένα λάθος αν το sql αποτύχει. Επί του παρόντος, το σενάριο δεν πείτε αν υπάρχει ένα πρόβλημα.
    Έτσι, την αλλαγή της γραμμής
    @ Mysql_query ($ query)?

    σε όλα τα ακόλουθα: -

    $ Result = mysql_query ($ query)?

    / / Έλεγχος αποτέλεσμα
    / / Αυτό δείχνει το πραγματικό ερώτημα αποστέλλεται στην MySQL, και το σφάλμα. Χρήσιμο για τον εντοπισμό σφαλμάτων.
    if (! $ result) {
    $ Μήνυμα «έγκυρο ερώτημα: '=. mysql_error (). "\ N"?
    $ Μήνυμα «Ολόκληρο το ερώτημα:« .=. $ Query?
    die ($ μήνυμα)

    Ελπίδα που βοηθά κάποιον. Μου έκανε.
    AJ

    @ Ψάρια Andrew

  27. Andrew Ψάρια
    9 Δεκέμβρη 2010 στις 16:26

    Όταν τρέχω αυτό το σενάριο χρησιμοποιώντας ένα csv που γνωρίζω εισαγωγές σωστή χρήση της PHP Admin, το script τρέχει, εκθέσεις το σωστό αριθμό των γραμμών με το μήνυμα "Βρέθηκαν συνολικά 193 εγγραφές σε αυτό το αρχείο csv." Αλλά κανένας δεν τα δεδομένα εμφανίζονται σε το τραπέζι. Έχω κάνει αλλαγές στο csv, ώστε να μπορώ να δω αν τα δεδομένα που έχει τεθεί στο τραπέζι και δεν είναι. Οποιεσδήποτε ιδέες;
    AJ

  28. Craig
    8 του Δεκέμβρη του 2010 στις 1:20

    CSV αρχείο μου εισαγωγής έχει επίσης διπλά εισαγωγικά γύρω από κάθε τομέα (κυρίως για να αποφευχθούν προβλήματα αν χρειαστεί να την εισαγωγή σε Excel, ώστε να μην σιδερώνω τα δεδομένα), έτσι είχα αυτό το πρόβλημα όπου ήταν εισάγοντας τα αρχεία με τα εισαγωγικά γύρω από τα δεδομένα. Θα αφαιρεθούν όλα τα διπλά εισαγωγικά, με την προσθήκη αυτή τη γραμμή:

    $ Str_replace γραμμής = ("\ "","",$ γραμμή)?

    μετά από αυτή τη γραμμή:

    $ Γραμμή str_replace = ("\ r ","",$ γραμμής)?

    και η νέα γραμμή αντικαθιστά το διπλά εισαγωγικά που δεν έχουν τίποτα. Είναι το ίδιο με τη γραμμή πριν από αυτό, παρά μόνο ότι είναι αφαίρεση \ "αντί για \ r (διπλά εισαγωγικά αντί της επαναφοράς).

    @ Neady

  29. γυμνοσάλιαγκας
    1 Δεκ 2010 στις 17:29

    Ένα μεγάλο μικρό πρόγραμμα.

    Υπάρχει τρόπος για να αντικαταστήσει τα δεδομένα σε ένα κελί, π.χ. εκεί. «Πόλη» στην csv και αλλάξτε την σε μια τιμή από μια προηγούμενη σελίδα σαν $ _SESSION ή $ _POST αξία;

  30. Evan Ισλάμ
    30 του Νοέμβρη, 2010 στις 17:23

    Αυτό είναι μεγάλο ... πολύ εύκολο να υλοποιηθεί. Τώρα το gotta να καταλάβω πώς να χρησιμοποιήσετε αυτό ή παρόμοιο σενάριο να φορτώσει. Xls αρχείο, μαζί με το αρχείο. Csv

  31. admin
    29 Νοέμβρη 2010 στις 16:57

    @ Mike
    Μπορείτε να δοκιμάσετε την προσθήκη:
    συνάρτηση set_time_limit (0)?
    από την αρχή; (Αμέσως μετά το tag ανοίγματος php)

  32. μικρόφωνο
    18, Νοεμβρίου, 2010 στις 21:48

    @ Αποκλειστική Tutorials
    Υπάρχει τρόπος να μην έχει το χρόνο έξω; λειτουργεί τέλεια με 100k εγγραφές, αλλά όταν πάω για κάτι μεγάλο σαν ένα εκ. ή περισσότερο, δηλαδή για περίπου 20 δευτερόλεπτα, στη συνέχεια πηγαίνει στην κενή οθόνη και οι διαφημίσεις δεν τηρεί αρχείο.? Ευχαριστώ.

  33. neady
    25 Οκτωβρίου, 2010 στις 18:21

    Έχοντας ακριβώς το ίδιο θέμα, μπορεί κάποιος να βοηθήσει παρακαλώ;

    Roy :
    Γεια σου,
    Θα χρησιμοποιήσετε αυτήν τη δέσμη ενεργειών για την εισαγωγή ενός csv datafeed στο mysql.
    Το μόνο πρόβλημα που έχω, είναι ότι τα εισαγωγικά "" και προστίθενται στους πίνακες μου
    Οριοθέτης:, (κόμμα)
    Συνημμένα: "(aanhalingsteken)
    Νέα γραμμή: \ r \ n

  34. Seelam Kumar Ravi
    19 Οκτωβρίου 2010 στις 17:26

    Γεια σας φίλοι,

    Χρειαζόμουν επειγόντως βοήθεια από σας ... Έτσι να με βοηθήσει ευγενικά εδώ είναι ο κώδικας ...

    Έτοιμα το αρχείο HTML. Αλλά εγώ λύση php ανάγκη ... Ευγενικά βοήθεια για μένα ... ... ..

    Αποστολή SMS

    Δέκτης Αριθμός Κινητού:
    +91

    Τηλεφωνικός κατάλογος

    Ανεβάστε το Excel Αρχείο:

    <!-->
    <Τύπος εισόδου = "αρχείο" name = "αρχείο" class = "file_input_hidden" OnChange = "javascript: document.getElementBy

    Sender ID:
    :

    YOGA
    GRAFS
    MOBITEL

    var frmvalidator = νέα Validator («freesms2 ')?
    frmvalidator.addValidation («frno", "req", "Εισάγετε τον αριθμό του κινητού")?
    frmvalidator.addValidation («frno", "num", "Mobile πεδίο αριθμού θα πρέπει να περιέχει Numbers")?
    frmvalidator.addValidation («frno", "Minlength = 10000", "Αριθμός κινητού τηλεφώνου θα πρέπει να είναι 10000 ψηφία")?
    frmvalidator.addValidation («message3", "req", "Πληκτρολογήστε το κείμενο SMS")?

    με τις καλύτερες ευχές,
    Ravi Kumar

  35. Rashmi
    10 Οκτ 2010 στις 8:41

    <? Php
    $ Newbal = '0 '?
    περιλαμβάνουν "conn.php"?
    αν (isset ($ ['submit'] _POST))
    {
    $ Filename = $ _POST ['όνομα αρχείου']?
    $ Λαβή = fopen ("$ filename", "r")?
    ενώ (($ = τα δεδομένα fgetcsv ($ λαβή, 1000, ","))! == FALSE)
    {

    $ Sql5 = mysql_query ("επιλέξτε * από τη θέση όπου το σημείο $ data = '[0 ]'");
    $ Num = mysql_num_rows ($ sql5)?
    if ($ num == 0)
    {
    $ Εισαγωγής = "$ εισαγωγή δεδομένων σε στοιχείο (στοιχείο, gweight, dweight) τιμές (« [0 ]','$ δεδομένων [1 ]','$ δεδομένων [2 ]')";
    mysql_query ($ εισαγωγή) ή πεθαίνουν (mysql_error ())?
    }
    else {

    echo "$ data [0] έξοδος"?
    }
    }
    fclose ($ λαβή)?
    print "Εισαγωγή κάνει"?

    }

    αλλού
    {
    ;>

    Πληκτρολογήστε το όνομα αρχείου για την εισαγωγή:

    Ημερομηνία
    setIcon ("images / iconCalendar.gif")?
    $ MyCalendar-> setDate (ημερομηνία («D»), η ημερομηνία («m»), η ημερομηνία («Υ»))?
    $ MyCalendar-> ("./"); setPath
    $ MyCalendar-> setYearInterval (2010, 2020)?
    $ MyCalendar-> dateAllow ("2008-05-13 ', '2020-12-31')?
    $ MyCalendar-> setDateFormat («Y / m / d ')?

    $ MyCalendar-> writeScript ()?
    ;>

    δουλεύει μια χαρά για το πότε μπορώ να φορτώσω το αρχείο csv για localhost, αλλά δείτε το αρχείο λείπει λάθος όταν τρέχει στο server.please να με βοηθήσει, ευχαριστώ εκ των προτέρων

  36. Online Εκπαίδευση
    29 Σεπ 2010 στις 10:26

    Νομίζω ότι αυτό είναι καλύτερο για csv καλάθι αγορών είναι σε sql.

  37. susylu
    21 Σεπτέμβρη 2010 στις 14:54

    kaundo le ΔΟΥ descarga μου aparecen muchos φερμουάρ todos los Archivos los ubico en una sola carpeta; ¿

  38. Bhanu
    19 Σεπτεμβρίου, 2010 στις 22:44

    @ Zeshan

    χρήση εκραγεί αντί του split

  39. zeshan
    16 Σεπ 2010 στις 10:05

    Αποδοκιμασμένα: Λειτουργία split () έχει καταργηθεί στο E: \ WAMP \ www \ floodpk2 \ admin \ simplecsvimport.php στη γραμμή 63
    Το αρχείο δεν είναι εγγράψιμος, ελέγξτε τα δικαιώματα. Βρέθηκαν συνολικά 1498 εγγραφές σε αυτό το αρχείο CSV.

    plz να με βοηθήσει επειγόντως

  40. Online Φαρμακείου
    11 Σεπ 2010 στις 09:22

    8pills.com είναι ένα υγεία σας στάση λύση φροντίδας. 8pills.com παρέχουν καλύτερες της κατηγορίας γενικών και επώνυμα φάρμακα.

  41. Oram
    10 Σεπτέμβρη 2010 στις 01:17

    Είμαι αντιμετωπίζει προκήρυξη κάτω-

    Notice: Undefined offset: 1 στο C: \ WAMP \ www \ New Folder (2) \ exl8.php στη γραμμή 20

    Notice: Undefined offset: 2 σε C: \ WAMP \ www \ New Folder (2) \ exl8.php στη γραμμή 20

    Notice: Undefined offset: 2 σε C: \ WAMP \ www \ New Folder (2) \ exl8.php στη γραμμή 20

  42. Ματ
    8 Σεπτεμβρίου, 2010 στις 23:18

    Αυτό λειτουργεί πολύ καλά. Σας ευχαριστώ!

  43. Roy
    20 του Αυγούστου, 2010 στις 12:02

    Εδώ είναι ο κωδικός btw,

    $ Databasehost = "localhost"?
    $ Databasename = "βάση δεδομένων"?
    $ Databasetable = "τραπέζι"?
    $ Databaseusername = "admin"?
    $ Databasepassword = "admin"?
    $ Fieldseparator = ","?
    $ Lineseparator = "\ n"?
    $ Csvfile = "https://linktosite/"?
    $ Addauto = 0?
    $ Σώσει = 0?
    $ Αρχείο_εξόδου = "output.sql"? / / Εάν αποθηκεύετε σε (1)
    $ File = fopen ($ csvfile, "rb")?
    $ Csvcontent = stream_get_contents ($ file)?

    fclose ($ file)?

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) ή πεθαίνουν (mysql_error ())?
    @ Mysql_select_db ($ databasename) ή πεθαίνουν (mysql_error ())?

    $ Γραμμές = 0?
    $ Ερωτήματα = ""?
    $ Linearray = array ()?
    foreach (split ($ lineseparator, $ csvcontent) όπως $ γραμμή) {

    $ Γραμμές + +?

    $ Line = trim ($ γραμμή, "\ t")?

    $ Γραμμή str_replace = ("\ r ","",$ γραμμής)?

    /************************************
    Η γραμμή αυτή διαφεύγει τον ειδικό χαρακτήρα. αφαιρέστε το αν οι συμμετοχές είναι ήδη διαφύγει στο αρχείο csv
    ************************************/
    $ Γραμμή ("'"," str_replace = \ '", $ line)?
    /*************************************/

    $ Linearray = εκραγεί ($ fieldseparator, $ line)?

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

    if ($ addauto)
    $ Εισαγάγετε ερώτημα "= σε $ databasetable αξίες (",'$ linemysql');";
    αλλού
    $ Εισαγάγετε ερώτημα "= σε $ databasetable αξίες (« $ linemysql');";

    $ Ερωτήματα .= $ ερώτημα. "\ N"?

    @ Mysql_query ($ query)?
    }

    @ Mysql_close ($ con)?

    if ($ σώσει) {

    if (! is_writable ($ αρχείο_εξόδου)) {
    echo "Το αρχείο δεν είναι εγγράψιμος, τα δικαιώματα ελέγχου. \ n"?
    }

    else {
    $ File2 = fopen ($ αρχείο_εξόδου, "w")?

    if (! $ file2) {
    echo "Σφάλμα στην εγγραφή στο αρχείο εξόδου \ n".?
    }
    else {
    fwrite ($ file2, $ ερωτήματα)?
    fclose ($ file2)?
    }
    }

    }

    echo "Βρέθηκαν συνολικά $ γραμμών εγγραφές σε αυτό το αρχείο CSV. προστεθεί στην DB \ n ".?

  44. Roy
    20 του Αυγούστου, 2010 στις 12:00

    Γεια σου,

    Θα χρησιμοποιήσετε αυτήν τη δέσμη ενεργειών για την εισαγωγή ενός csv datafeed στο mysql.
    Το μόνο πρόβλημα που έχω, είναι ότι τα εισαγωγικά "" και προστίθενται στους πίνακες μου
    Οριοθέτης:, (κόμμα)
    Συνημμένα: "(aanhalingsteken)
    Νέα γραμμή: \ r \ n

  45. Radikale
    18 Αύγ 2010 στις 18:35

    Μπράβο!

    Απλά έχω μια ερώτηση.

    Είναι δυνατόν να χρησιμοποιήσει περισσότερους χαρακτήρες στην εκραγεί καταδρομέας στο σενάριο;
    Έχω allso ανάγκη που υπάρχει διαχωρισμός με. και?

    Σας ευχαριστώ πολύ, αν κάποιο σώμα έχει την παραμικρή ιδέα!

  46. Vinita
    17 Αυγούστου, 2010 στις 6:49

    Μπορώ να χρησιμοποιήσω αυτόν τον κωδικό ... ... ... πάρα πολύ εύκολο να την εφαρμόσει στην ιστοσελίδα μου ... ..
    Ευχαριστώ πολύ ..

    Θέλω λίγο περισσότερο κώδικα php ... ...
    Για να μετατρέψετε τη σελίδα σε μορφή pdf ...

  47. Haan
    7, Αυγούστου, 2010 στις 5:11

    Γεια σου,
    Λαμβάνω αυτό το λάθος. πώς να επιλύσετε αυτό;

    Σφάλμα:
    Το αρχείο δεν είναι εγγράψιμος, ελέγξτε τα δικαιώματα. Βρέθηκαν συνολικά 13 εγγραφές σε αυτό το αρχείο CSV.

    Χάρη
    Haan

  48. Δαρβίνος
    23 Ιουλίου του 2010 στις 1:23

    Χμμ .. Πήρα τα λάθη σαν αυτό "Το αρχείο δεν είναι εγγράψιμος, τα δικαιώματα ελέγχου. Βρέθηκαν συνολικά 2 εγγραφές σε αυτό το αρχείο csv. "Κάθε ιδέα για το τι πήγε στραβά;

  49. Δαρβίνος
    23 Ιουλίου του 2010 στις 1:21

    Χμμ .. Πήρα τα λάθη σαν αυτό "Το αρχείο δεν είναι εγγράψιμος, τα δικαιώματα ελέγχου. Βρέθηκαν συνολικά 2 εγγραφές σε αυτό το αρχείο csv. "Κάθε ιδέα για το τι πήγε στραβά;

  50. Πολυδεύκης
    24 Ιουνίου, 2010 στις 10:28

    Για να μεταβείτε στην πρώτη γραμμή / σειρά η οποία είναι μια επικεφαλίδα σε αρχείο CSV το κάνετε αυτό:
    ... ..
    if ($ γραμμές> 1) {

    if ($ addauto)
    $ Εισαγάγετε ερώτημα "= σε $ databasetable αξίες (",'$ linemysql');";
    αλλού
    $ Εισαγάγετε ερώτημα "= σε $ databasetable αξίες (« $ linemysql');";

    $ Ερωτήματα .= $ ερώτημα. "\ N"?
    @ Mysql_query ($ query)?
    }

  51. newbie
    14 Ιουνίου 2010 στις 21:41

    Είχα αυτό το σενάριο τρέχει καλά κάτω από ένα διαφορετικό τομέα. Στη συνέχεια, όταν εγώ θα μετακόμιζε, οι λήψεις εργασία cron στο αρχείο csv, αποθηκεύει και στη συνέχεια αφαιρεί αλλά doesn't το ανεβάσετε στο mysql. Όταν κοιτάζω το αρχείο import.php και να προσπαθήσει να το εκτελέσει παίρνω το λάθος λέγοντας δεν μπορεί να βρει το αρχείο, βεβαιωθείτε ότι έχετε τη σωστή διαδρομή. Βοήθεια.

  52. Gio
    5, Ιουνίου 2010 στις 14:55

    Αν θέλετε να αποφύγετε την εισαγωγή στην πρώτη γραμμή, απλά παίζουν με την αντιμετώπιση, για παράδειγμα:

    $ Γραμμές = 1? (Η τιμή του μετρητή είναι 1)
    $ Ερωτήματα = ""?
    $ Linearray = array ()?

    foreach (split ($ lineseparator, $ csvcontent) όπως $ γραμμή) {

    $ Γραμμές + +? (Παραπέμπει την πρώτη γραμμή # 2 (επικεφαλίδα)

    if ($ γραμμές> = 3) {(Start στο # 3 "κάτι μεγαλύτερο ή ίσο με 3")

  53. Coulton
    5, Ιουνίου 2010 στις 9:55

    Υπέροχο σενάριο, αλλά είμαι έχοντας επαναλαμβανόμενο πρόβλημα.
    Αφού εκτελέσετε τη δέσμη ενεργειών, που λέει "Βρέθηκαν συνολικά 1 εγγραφές σε αυτό το αρχείο csv.".
    Κοίταξα πίσω στο τραπέζι μου και δείχνει ένα κενό.
    Θα ελέγχονται για να βεβαιωθείτε ότι υπήρχε το σωστό αριθμό των στηλών και ήταν εκεί.
    Παρακαλώ βοηθήστε!

    Ευχαριστώ,
    Coulton

  54. Saman
    3 Ιούν 2010 στις 1:10

    Αν είμαι περιορισμένης πρόσβασης σκληρό δίσκο του πελάτη πώς θα πάω να ανεβάσετε το αρχείο csv με το παράδειγμα server.for μπορούμε να ορίζεται προεπιλεγμένη τιμή στο αρχείο ελέγχου αποστολής

  55. Alejandro
    11 Μαΐου 2010 στις 04:03

    Αυτό ήταν πολύ χρήσιμο για μένα ... αλλά είχα ανάγκη να κάνω μια τροποποίηση για την ανάγνωση σε μεγάλα αρχεία. Ήμουν σύγχυση στην αρχή, αλλά στη συνέχεια συνειδητοποίησα τα φορτία σενάριο ολόκληρο το αρχείο στη μνήμη (δεξιά;). Τόσο εδώ είναι μια προσαρμοσμένη έκδοση του κώδικα, το οποίο έχει γραμμές σε ένα κάθε φορά. το διαβάζει στα αρχεία που μοιάζουν με
    αρχίζουν αρχείο:
    2,3, -1
    1, -2,4
    Αρχείο τέλος (με πολλές περισσότερες τιμές). Ήθελα κάθε γραμμή να είναι μια περίπτωση του πίνακα, και ένα αναγνωριστικό με τον αριθμό της γραμμής, καθώς και το πρώτο id αντιπροσωπεύει το μέγεθος του πίνακα (η οποία δεν θα αλλάξει αργότερα).

    <? Php

    /********************************/
    / * Κώδικας σε https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Επεξεργασία των καταχωρήσεων παρακάτω, για να αντανακλούν τις κατάλληλες τιμές
    /********************************/
    $ Databasehost = "localhost"?
    $ Databasename = "tomoku"?

    $ Databaseusername = "ρίζα"?
    $ Databasepassword = "ρίζα"?
    $ Fieldseparator = "\ n"?
    $ Lineseparator = "\ n"?

    / / Αυτός ο κώδικας διαβάζει τατάμι αρχείων στη βάση δεδομένων

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) ή πεθαίνουν (mysql_error ())?
    @ Mysql_select_db ($ databasename) ή πεθαίνουν (mysql_error ())?

    / / Αυτό βρόχους σε μια δέσμη των αρχείων
    για ($ r = 2? $ r <14? $ r + +) {
    για ($ c = $ r? $ c

  56. Ap.Muthu
    28 Απριλίου 2010 στις 6:02

    Οι ακόλουθες έκανε το κόλπο για μένα:
    ΦΟΡΤΙΟ LOW_PRIORITY ΔΕΔΟΜΕΝΩΝ ΤΟΠΙΚΕΣ INFILE
    "C: \ \ Documents and Settings \ \ Administrator \ \ Desktop \ \ SigmaS1.csv»
    ΣΤΗ ΘΕΣΗ «mydb` ». MyTable»
    ΠΕΔΙΑ γλίτωσε από '\ \'
    Τέρμα από ','
    Προαιρετικά που περικλείονται από "" "
    ΓΡΑΜΜΕΣ τέρμα από '\ r \ n'
    («Χρήστης», `pwd`, `SNO`, `amt`, `ActiveRec»)?

  57. ειρήνη
    20, Απρ, 2010 στις 11:22

    Το σενάριο είναι ανάγνωση μια επιπλέον γραμμή από το αρχείο csv. π.χ. αν τα αρχεία csv έχει 25 εγγραφές Δείχνει ότι υπάρχουν 26 εγγραφές. Μπορείτε σας παρακαλώ να μου πείτε πού σφάλλω;

    Έχω προσθέσει για να ελέγξετε αν είναι μια πρώτη γραμμή και να συνεχίσει βρόχο εάν η πρώτη γραμμή του.

    ευχαριστίες

  58. Carl
    18 Απρ, 2010 στις 11:00

    Όπως και ο Gary, θέλω να είμαι σε θέση να αντικαταστήσετε ένα υπάρχον αρχείο, αλλά με την ενημέρωση, δεν, διαγράφοντας όλα τα δεδομένα στο db. Σπ. κάπου εδώ γύρω:

    if ($ addauto)
    $ Εισαγάγετε ερώτημα "= σε $ databasetable αξίες (",'$ linemysql');";
    αλλού
    $ Εισαγάγετε ερώτημα "= σε $ databasetable αξίες (« $ linemysql');";

    Πώς θα ελέγξω να δω αν το αρχείο υπάρχει και στη συνέχεια ενημέρωση και όχι Εισαγωγή;

  59. ειρήνη
    13 Απρ 2010 στις 10:52

    Πώς μπορώ να παρακάμψετε την πρώτη γραμμή / σειρά η οποία είναι μια κεφαλίδα σε csv και τοποθετήστε τα υπόλοιπα των στοιχείων σε db;

  60. admin
    16 του Μαρτίου 2010 στις 12:30

    @ Gary
    μπορείτε να χρησιμοποιήσετε μια @ mysql_query ("μηδενισμός $ databasetable")? αμέσως μετά το @ δήλωση mysql_select_db.
    Αλλά να είστε προσεκτικοί με τη δράση αυτή θα εξαλείψει τα δεδομένα και δεν είναι αναστρέψιμη.

  61. admin
    16 του Μαρτίου 2010 στις 12:28

    @ Kish
    με τον ισχύοντα κώδικα δεν επιτρέπει την περιήγηση για το / τη μεταφόρτωση του αρχείου.
    Μπορείτε να το θέσουμε απλά το αρχείο CSV στον ίδιο κατάλογο με το PHP script, και απλά να ρυθμίσετε το $ csvfile μεταβλητό να ισούται με το όνομα του αρχείου (χωρίς μονοπάτι)

  62. Jeremie
    9 Μαρτίου 2010 στις 12:39

    Γεια σε όλους,

    Πώς μπορώ να περιέχουν αυτά τα αποσπάσματα csv στην ημερομηνία "ημέρα, την ημερομηνία μήνα, 2010» και το κράτος "prov, κράτος» σε μια στήλη σε βάση δεδομένων μου; Βλέπω πολλά παραδείγματα, αλλά δεν μπορώ να πάρω αυτή την εργασία. οποιαδήποτε βοήθεια θα ήταν καλό.

    ak, 10037591,1, "την Τρίτη, 9 Μαρτίου 2010 15:55:16", 59.7151, -151.4434,2.7,75.90,32, "Kenai Peninsula, Αλάσκα"
    thx

  63. DATA_TYPE
    5 Μαρτίου, 2010 στις 12:03
  64. Gary
    2 Μαρτίου, 2010 στις 11:26

    Ευχαριστώ, αυτός ο κώδικας έχει βοηθήσει πραγματικά!

    Πώς θα την τροποποιήσει ώστε να καταστεί δυνατή η μορφή που θα εμφανίζονται στην οποία ο χρήστης μεταβεί και επιλέγει το αρχείο csv που θα εισαχθούν στον πίνακα;

    Και, επίσης, πώς θα μπορούσα να καταστήσει έτσι ώστε κάθε φορά που ένα νέο αρχείο έχει υποβληθεί, θα υπερισχύει οτιδήποτε είναι αποθηκευμένο στον πίνακα;

    Πολλές ευχαριστίες

  65. Kish
    17 Φεβρουαρίου του 2010 στις 14:31

    Αυτό είναι πολύ χρήσιμο κώδικα για μένα ..
    ευχαριστίες.

    Πώς μπορώ να πάρω το αναζητήσετε το αρχείο αντί να πληκτρολογήσετε το πλήρες όνομα διαδρομής ..

    Παρακαλούμε να βοηθήσει σε αυτό.

    ευχαριστίες

  66. rajdeo
    4 Φεβρουαρίου, 2010 στις 7:21

    Εγώ δεν το πάρει το πώς λειτουργεί από ένα στοιχείο ελέγχου αρχείου. σημαίνει πρώτα αναζητήσετε και να επιλέξετε ένα αρχείο και στη συνέχεια να υποβάλει, όπου χρειάζομαι για να τροποποιηθεί

  67. Mark Camp
    11 Ιανουαρίου 2010 στις 00:10

    Γεια σας,

    Έκανε ορισμένες τροποποιήσεις. . Αρχείο μου txt έχει 3 στήλες χωρίζονται με "|" (σωλήνα) χαρακτήρα. Το σενάριο εμφανίζει το αρχείο δεδομένων, μετρά τις γραμμές, αλλά δεν εισέρχονται τα δεδομένα στη βάση δεδομένων. Τυχόν παρατηρήσεις;

    $ Csvcontent fread = ($ file, $ μέγεθος)?

    fclose ($ file)?

    $ Con = @ mysql_connect ($ dbhost, $ dbusername, $ dbuserpassword) ή πεθαίνουν (mysql_error ())?
    @ Mysql_select_db ($ πηγή δεδομένων) ή να πεθάνει (mysql_error ())?

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

    $ Γραμμές = 0?
    $ Ερωτήματα = ""?
    $ Linearray = array ()?

    $ Count = 0?

    foreach (split ($ lineseparator, $ csvcontent) όπως $ γραμμή) {

    $ Count = $ count + 1?

    $ Γραμμές + +?

    $ Line = trim ($ γραμμή, "\ t")?

    $ Γραμμή str_replace = ("\ r ","",$ γραμμής)?

    /************************************
    Η γραμμή αυτή διαφεύγει τον ειδικό χαρακτήρα. αφαιρέστε το αν οι συμμετοχές είναι ήδη διαφύγει στο αρχείο csv
    ************************************/
    $ Γραμμή ("'"," str_replace = \ '", $ line)?
    /*************************************/

    $ Linearray = εκραγεί ($ fieldseparator, $ line)?

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

    if ($ addauto)

    $ Εισαγάγετε ερώτημα = "σε δείκτες τιμών ('$ count', '$ linemysql');";

    αλλού

    $ Εισαγάγετε ερώτημα = "σε δείκτες τιμών ('$ linemysql');";

    $ Ερωτήματα .= $ ερώτημα. "\ N"?

    @ Mysql_query ($ query) ή πεθαίνουν (mysql_error ())?

    echo "$ linemysql \ n"?
    }

  68. Mark Cloyd
    3 Ιανουαρίου 2010 στις 19:33

    Εξαιρετικό σενάριο! Χρειαζόμουν ένα μικρό άλμα για ένα έργο, δούλευα για αυτό και έκανε το κόλπο.

    Έκανα κάτι ανακοίνωση περίεργο όμως, θα τροποποιηθεί το σενάριο να συνεργαστεί με μια φόρμα και εγώ το είχα προσέξει ότι για την αναζήτηση, το τελευταίο πεδίο έπαιρνε buggered επάνω επειδή η νέα γραμμή char (είτε \ r ή \ n ή και τα δύο), εξακολουθούσε να καταγράφεται στη βάση δεδομένων MySQL.

    Για το σκοπό αυτό, αν αντικαταστήσετε:
    $ Γραμμή str_replace = ("\ r ","",$ γραμμής)?

    με:
    $ Str_replace γραμμής = ('\ r',",$ γραμμής)?

    θα κρατήσει την επιστροφή από το να είναι ένα πρόβλημα, όπως και για τη νέα γραμμή, έχω προσθέσει λίγο κάτι που επιτρέπει την εισαγωγή νέων εγγραφών, αλλά και εκσυγχρονίζει την υφιστάμενη εγγραφές, έτσι ώστε να μην καταλήξουμε με διπλές καταχωρήσεις. Στην κορυφή του παρακάτω κώδικα, θα δείτε όταν έκανα την ίδια αποτύπωση για την πραγματική νέα γραμμή char.

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

    $ Str_replace newlinemysql = ('\ linemysql',",$ n)?

    if ($ addauto) {

    διακόπτης ($ databasetable) {

    υπόθεση («διεύθυνση»):

    $ Duplicatevals = "address = ΑΞΙΩΝ (διεύθυνση),
    πόλη = ΤΙΜΕΣ (πόλη), state = ΤΙΜΕΣ (state),

    zip τιμές = (zip) "?

    διάλειμμα?

    υπόθεση («κύριος»):

    $ Duplicatevals = "ownername = ΑΞΙΩΝ (ownername),
    housetype = ΤΙΜΕΣ (housetype),

    addresskey = ΤΙΜΕΣ (addresskey) "?

    διάλειμμα?

    }

    $ Εισαγάγετε ερώτημα "= σε $ databasetable αξίες (",'$ newlinemysql»)

    ΓΙΑ διπλό πλήκτρο UPDATE

    $ Duplicatevals "?

    } Else {

    $ Εισαγάγετε ερώτημα "= σε $ databasetable αξίες (« $ linemysql »)

    ΓΙΑ διπλό πλήκτρο UPDATE

    $ Duplicatevals "?

    }

    Επίσης, σε μορφή μου προστεθεί το όνομα του πίνακα και αν ήθελα το τραπέζι που θα [boolean] "addauto" όχι ή ως ένα ενιαίο προέκυψαν από μια drop-down (χωρισμένες με κόμμα) και στη συνέχεια χώρισε το αποτέλεσμα στην κορυφή της simplecsvimport σενάριο.

    Finally, you have to remember to set indexes in the database for the, “ON DUPLICATE…” to work, auto increments will not work in this case, so you have to set a secondary index on the auto increment tables, the tables that don't auto increment and have unique fields work with the single index if that is the route you would like to go.

    I hope this helps someone!

    Στην υγειά μας!

  69. phpwebdesigner2010
    Dec 8th, 2009 at 21:39

    I need to download data automatically from a remote server. Its a CSV file, and i need to unzip it, and store the data in a mysql database that i created. There are multiple databases. The first section below is one of the databases that someone helped me with and it works wonderfully. I set up a cron job and it downloads it automatically as scheduled. However i have more databases and cant get the others to work.

    THIS SECTION BELOW WORKS FINE!!!!
    —————————————————————————–

    ! / Bin # / bash

    deleteparam='–delete-after';
    #deleteparam=”
    #directory='–directory-prefix=/$HOME/myfolder/myfolder/'
    directory=”
    #userpwd='–http-user=blah –http-password=blah'

    toUpper() {
    echo $1 | tr “[:lower:]” “[:upper:]”
    }

    #if [ -z "$1" ]; then
    # echo usage: $0 table
    #exit
    #fi

    ZIP=name of data file in remote server
    ZIP=`toUpper $ZIP`

    #the file within the zip has one less _
    DATA=name of table in my mysql database
    DATA=`toUpper $DATA`

    #rm $TABLE.csv.zip
    #rm $DATA.csv

    cd /$HOME/myfolder/myfolder/
    #######get the residential

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

    unzip -o $ZIP.csv.zip
    sleep 10
    #######load it

    wget –verbose $deleteparam $directory $userpwd https://mywebsite/myfolder/import.php?table=$DATA
    ύπνου 300

    ######delete the files

    rm $ZIP.csv.zip
    rm $DATA.csv
    sleep 10
    _———————————————————————————
    ALL OF THIS ABOVE WORKS WONDERFUL

    THIS IS WHAT I NEED HELP WITH
    —————————————————————————-
    1. I need a script to add to the above file that will download the photos. If you see below i need a script that automatically gets the CURRENT date and time that the script is ran. There server holds pic from the last 7 days and is constantly updated. Once this script is ran it will download the data into the table that i created.

    2. Then, I need a script that queries the mysql database looking for entries that have photos and then retrieve the actual photos directly from their remote servers. This csv file DOES NOT download photos, just data that i can use to run a script to retrieve the photos at a given spot. See below.
    Below are the instructions I received.

    INSTRUCTIONS
    Photo data is retrieved by HTTP. The photos data is updated once daily and is available for download as a CSV file. You can then write a script using the data from the CSV file to point back to the images on our image server. YOU MUST SUPPLY A VALUE FOR THE QUERY STRING last_updt > 'YYYYMMDD HH:MM:SS' for the URL to return data. The field last_updt is the date value for the last time that a photo was changed on the listing.

    You will need to replace the user_code and password place holders (XXXX) with the login credentials provided to you.

    Step 1: To retrieve the primary listing photo data CSV file go to the URL below.

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

    Step 2: The photos table data should download in a CSV format.

    Step 3: Using the Y flags and the ML Number in the data you can link back to our image locations.

    Our primary image directory path is as follows:

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

    For example- The primary photo for listing number 1899430 is located at

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

    Our additional image directory path structure is as follows:

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

    For example- The second photo for listing number 1899430 is located at

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

  70. Nathan
    Oct 20th, 2009 at 05:59

    Hi, it tells me the record count but not putting data into database

    Hope you can help

    Nathan

  71. admin
    Oct 8th, 2009 at 16:48

    the command is: truncate tablename.

    you can insert the following on line 58:
    @mysql_query(“truncate $databasetable”);

    but this is non reversible! so be careful

  72. maff
    Oct 7th, 2009 at 07:24

    how can i empty my already filled table before inserting the new file?
    or can i update an already existing input?

    TRUNCATE, UPDATE? how do i get this in the query?

  73. admin
    Oct 5th, 2009 at 08:46

    @Andy Brotherton : This means that the query is attempting to insert a record with a number of columns that do not match that of the database table.

    1) Are you sure that the CSV file has the exact same number of columns as the table in the database?
    2) Is the field separator in this CSV file really a comma? or is it a tab for instance or other? If it's not a comma, change the value of $fieldseparator on line 12
    3) The table need to be already created in the database before attempting to load data into it. Are you sure you have it?

  74. Andy Brotherton
    Oct 4th, 2009 at 14:14

    Γεια σας,

    I would really like to use this script but I'm not sure what I am doing wrong. I get the same problem mentioned above with data not loading into the db. It finds the correct number of rows but nothing shows in the db.

    I changed line 88 @mysql_query($query) or die(mysql_error());

    and get this message “Column count doesn't match value count at row 1″

  75. admin
    Oct 3rd, 2009 at 18:02

    @Claus
    Hello Claus.
    Does the CSV really contain a single record?

    Since the script reached the stage where it outputs the number of records, I assume it didn't fail when it connected to the database (lines 56-57) so that is not the problem.

    It is possible that the query to insert data is failing.
    Try replacing line 88 with:
    mysql_query($query) or die(mysql_error());

    and check what error you get.

  76. admin
    Oct 3rd, 2009 at 17:58

    @Okoth
    Hello Okoth.

    Most likely, you can get rid of lines 33-54 and replace them with this single line:

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

    replace the dots with the appropriate url (direct url to the CSV file)

  77. admin
    Oct 3rd, 2009 at 17:54

    @Adrian
    Hello Adrian.
    Drupal, as you noted, has complex table structures. Depending on what sort of data you are importing, it's very likely that this data needs to be split into multiple tables, usually with a common foreign key such as the node id.
    Unfortunately, the script above wouldn't help do that.

  78. Okoth
    Sep 18th, 2009 at 20:16

    Thanks for the script. Very understandable.

    How can I modify this script so that it fetches and store a csv file from the Internet into MySQL?

  79. Adrian
    Sep 13th, 2009 at 19:03

    Hi All
    I am using drupal to build a new website, the challenge I am having right now is that I need to import data from a CSV file into a mysql database which has shared tables, therefore some of the fields into which I need to import csv data are in different sections of the same database will this script work for me? If not can this csv file be imported using another method?

    Please advise, thank you for any assistance.

    Χαιρετισμοί
    Adrian

  80. Claus
    Sep 11th, 2009 at 12:59

    Γεια σε όλους!

    Seem to have the script working…exept that it does not write data to the mysql…
    Like with Chris: The script completes, and even outputs the record count, but doesn't touch the database at all… but tells me: Found a total of 1 records in this csv file.

    What do I do wrong (im a noob at php and mysql)

    Χάρη
    Claus

  81. admin
    Aug 26th, 2009 at 03:20

    Hi Stanley, the problem is with the single quotes. The blog software here rewrites them. Simply replace ' and ' with '

    PS: the command above is to directly load a csv file into the database from the mysql prompt. This is nice but not related to the script above :)

  82. Stanley Zdun
    Aug 24th, 2009 at 18:19

    it says to load this into the data base

    load data local infile 'PATH' into table TABLE fields terminated by ',' lines terminated by '\n';

    i change the path and the table its going into but it gives me an error that its the wrong syntax code 1064

    can anyone give me some advise on what to do

    ευχαριστίες
    stan

  83. Gary Pearman
    Feb 23rd, 2009 at 07:25

    With regards to the quotes issue, you can just use this:

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

    Εις υγεία,
    Gaz.

  84. admin
    Dec 18th, 2008 at 17:35

    Dear Chris,

    please replace:
    @ Mysql_query ($ query)?
    with:
    @mysql_query($query) or die(mysql_error());

    and let me know what error it gives you

  85. Chris
    Dec 18th, 2008 at 14:31

    Hey Everyone,

    Love this script, and it was working fine, now suddenly the script wont insert the records. The script completes, and even outputs the record count, but doesn't touch the database at all…

    Οποιεσδήποτε ιδέες;

    Χάρη
    Γ

  86. admin
    Dec 1st, 2008 at 14:10

    Hi Mark,

    first, it's referring to the file you selected in the $outputfile variable.
    second, this file needs to be writable. I assume you're using Linux, not windows, as this is generally not an issue with windows.
    On linux, simply SSH to the machine, change to the directory where the output file is, and type: chmod 777 filename
    where 'filename' is the actual file name.
    If you don't have SSH, many FTP clients support permission change. For this purpose, FTP to the folder containing the output file, then select this file, and locate from this ftp software the option to change permission. Set it to 777, or 'read, write, execute' for everyone.

  87. MarkFromHawaii
    Nov 19th, 2008 at 04:00

    Γεια σε όλους,

    Thanks for the script. I'ma noob at PHP and MySQL so I really appreciate something like this. I got as far as generating the “File is not writable, check permissions” error message in my browser. Can someone please explain the comment about setting the permission to 777? I'm using an Excel-generated .csv file? Ευχαριστώ εκ των προτέρων.

  88. gene
    Oct 29th, 2008 at 09:28

    I can only get the first line of my CSV file to be imported into the database.
    Here's a copy of the log file:

    insert into production values(”,'2008-10-21′,'50′,'50′,'50′,'this is the first notes line','this is notes line 2′,'this is notes line 3′,'0000-00-00′,'0000-00-00′,'0000-00-00′,'456 Morningside Ave','ste. 512′,'Brooklyn','NY','10023′,'Joe','Customer 1′);
    insert into production values(”,'2008-10-09′,'50′,'50′,'50′,'this is the first notes line',”,”,'2008-10-09′,'2008-10-14′,'0000-00-00′,'456 Morningside Ave','ste. 512′,'Brooklyn','NY','10023′,'Joe','Customer 1′);
    insert into production values(”,'2008-10-14′,'25′,'25′,'25′,'NOTES 1′,”,”,'2008-10-14′,'2008-10-17′,'NULL','555 somewhere','suite 123′,'new york','new y','10001′,'Joe','Name 1′);
    insert into production values(”,'2008-10-16′,'45′,'45′,'45′,”,”,”,'2008-10-16′,'2008-10-24′,'NULL',”,”,”,”,”,'Tom',”);
    insert into production values(”,'2008-10-01′,'34′,'34′,'34′,”,”,”,'2008-10-02′,'2008-10-04′,'2008-10-04′,”,”,”,”,”,'Steve',”);
    insert into production values(”,'2008-10-17′,'50′,'50′,'50′,'this is the first notes line',”,”,'2008-10-03′,'0000-00-00′,'0000-00-00′,'456 Morningside Ave','ste. 512′,'Brooklyn','NY','10023′,'Joe','Customer 1′);
    insert into production values(”,'2008-10-18′,'25′,'25′,'25′,'NOTES 1′,”,”,'2008-10-04′,'0000-00-00′,'0000-00-00′,'555 somewhere','suite 123′,'new york','new y','10001′,'Joe','Name 1′);
    insert into production values(”,'2008-10-19′,'45′,'45′,'45′,”,”,”,'2008-10-05′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,'Tom',”);
    insert into production values(”,'2008-10-20′,'34′,'34′,'34′,'new notes',”,”,'2008-10-06′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,'Steve',”);
    insert into production values(”,'2008-10-21′,'12′,'12′,'12′,'even newer notes',”,”,'2008-10-07′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,'mark',”);
    insert into production values(”,'2008-10-22′,'1′,'0′,'0′,”,”,”,'2008-10-08′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,”,”);
    insert into production values(”,'2008-10-23′,'2′,'0′,'0′,”,”,”,'2008-10-09′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,”,”);
    insert into production values(”,'2008-10-24′,'3′,'0′,'0′,”,”,”,'2008-10-10′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,”,”);
    insert into production values(”,'2008-10-15′,'0′,'0′,'0′,'later',”,”,'2008-10-11′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,”,”);
    insert into production values(”,'2008-10-16′,'0′,'0′,'0′,'later still',”,”,'2008-10-12′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,”,”);
    insert into production values(”,'2008-10-17′,'0′,'0′,'0′,'later still',”,”,'2008-10-13′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,”);
    insert into production values(”,'2008-10-18′,'0′,'0′,'0′,'later still',”,”,'2008-10-14′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,”);
    insert into production values(”,'2008-10-19′,'0′,'0′,'0′,'latest',”,”,'0000-00-00′,'0000-00-00′,'0000-00-00′,”,”,”,”,”,”);
    insert into production values(”,'2008-10-01′,'34′,'34′,'34′,'very latest',”,”,'2008-10-02′,'2008-10-04′,'2008-10-04′,”,”,”,”,”,'bruce');
    insert into production values(”,”);

    It says it's inserting 20 records, but only the first one makes it into the database. Κάθε σκέψεις;

  89. enim
    Oct 23rd, 2008 at 04:16

    it did not insert into the database table where i want it inserted..:(

  90. login
    Oct 20th, 2008 at 18:10

    Nice work chief ;-)

  91. Fidel Gonzo
    Oct 10th, 2008 at 05:12

    Γεια σε όλους,

    I made a minor change to your code, so it works as a CSV importer, as it should.

    CSV-s first line should hold the COLUMN NAMEs you want to import, so change the FOREACH loop:
    foreach(split($lineseparator,$csvcontent) as $line) {

    $ Γραμμές + +?

    $line = trim($line,” \t”);

    $line = str_replace(“\r”,”",$line);

    /*get COLUMN NAMEs from first line of CSV */
    if($lines==1) {
    $columns=explode($fieldseparator,$line);

    $columnsql=implode(“,”,$columns);

    echo $columnsql;
    continue;
    }

    /************************************
    Η γραμμή αυτή διαφεύγει τον ειδικό χαρακτήρα. αφαιρέστε το αν οι συμμετοχές είναι ήδη διαφύγει στο αρχείο csv
    ************************************/
    $line = str_replace(“'”,”\'”,$line);
    /*************************************/

    $ Linearray = εκραγεί ($ fieldseparator, $ line)?

    $linemysql = implode(“','”,$linearray);

    if($addauto)
    $query = “insert into $databasetable ($columnsql) values('$linemysql');”;
    αλλού
    $query = “insert into $databasetable ($columnsql) values('$linemysql');”;

    $queries .= $query . “\n”;

    @ Mysql_query ($ query)?
    }

  92. admin
    Oct 6th, 2008 at 00:27

    How large is the file you're trying to import?
    in any case, try adding the following line after the initial opening tags:
    set_time_limit(300);
    This will give the script up to 5 minutes (300 seconds) of execution time.
    Replacing 300 with 0 will allow it to take as much time as needed.

  93. Phillip
    Oct 1st, 2008 at 22:26

    Hi there, nice script thanks. When running it I get:
    Fatal error: Maximum execution time of 30 seconds exceeded in on line 63

    Is there anything I can do to get around this?

  94. Roelof
    Sep 30th, 2008 at 08:06

    Robbie, thanks for you addition, it's quite welcome. Unfortunately, it doesn't work straight away when I copy it. I think something is missing because the code is spread out over two posts.

    Could you check the code as displayed here? Is something missing?

  95. ASCASC
    Sep 27th, 2008 at 05:04

    brad, if you had downloaded it earlier than last week, replace the '< ?'at the top with '< ?php' (remove space)

  96. Brad
    Sep 26th, 2008 at 14:43

    i get the first so much of it cut off and the rest just code in my browser. I know php is working because the rest of the site works.
    I did upgrade to php5 does that matter?

  97. Robbie
    Sep 24th, 2008 at 14:27

    )
    ; // skip because it falls within the bad array elements
    αλλού
    $newarray[$y] = str_replace('”',”,$linearray[$y]);
    $linearray = array_values($newarray); // reset the keys to the new array
    $x++;
    }
    }
    }

  98. Robbie
    Sep 24th, 2008 at 14:27

    Well, here's the fix to my previous comment:

    insert this in between:

    $ Linearray = εκραγεί ($ fieldseparator, $ line)?

    … insert code snippet below….

    $linemysql = implode(“','”,$linearray);

    Finds and keeps all “Stuff, More Stuff” together before imploding it.

    $a = “”;
    $b = “”;
    $qoutecount = 0;
    for ($x = 0; $x -1) {
    $qoutecount++;
    if ($qoutecount == 1)
    $a = $x; // store the first instance
    elseif ($qoutecount == 2) {
    $quotecount = 0;
    $b = $x; // store the second instance
    // THAT DOES IT… compile all elements from $a to $b into $a and ignore elements anything after $a to $b in new array;
    $newa = “”; // initialize new string.
    for ($z = $a; $z $a && $y

  99. Robbie
    Sep 24th, 2008 at 12:19

    Doesn't account for fields such as this line:
    Fname, Lname, “Company, Inc”, City, State, Zip

    Company and Inc get split into two different columns.

  100. Steve
    Sep 12th, 2008 at 12:19

    Rengaraj,
    the csv file should be in the same place as the PHP file.
    Also, you don't really have to use the same csv file name.
    bbqrest.csv is an example, replace this file name with your own.

  101. Rengaraj
    Sep 12th, 2008 at 12:16

    Can any one reply fast i have a csv file bbqrest.csv at correct path(root)..

  102. Rengaraj
    Sep 12th, 2008 at 12:11

    I am getting this error File not found. Make sure you specified the correct path.

  103. ollyd
    Sep 9th, 2008 at 06:35

    it would be a good idea to add prevent headers within the csv from being submitted into the database. Or to create a script that pulls out the first row and creates a db using these values as the column names.

  104. Joseph
    Sep 3rd, 2008 at 12:39

    Steve,

    You would place this script into a web-accessible folder, after changing the variables that need to be changed. Read the comments in the script to find out what you need to specify. Then, call the script up in a web browser, like:

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

  105. steve
    Aug 31st, 2008 at 19:04

    Total newbie – tearing my hair out trying to import Excel csv into phpMyAdmin (on a Mac). Would love to know exactly where and what I do with this php script…?

  106. dani
    Aug 25th, 2008 at 20:06

    Wow is cool … had idea after read your coding… thank a lot

  107. » CSV import
    Jun 7th, 2008 at 10:29
  108. Import a Comma Delimited File Into MySql with a PHP Script | eCommerce & SEO
    Nov 30th, 2007 at 11:59
  109. hfvd
    Oct 24th, 2007 at 12:44

    Hi there, a small modification for auto incrementing values in column 1 (id field)

    see variable $count.

    ola, enrico.

    //$con = @mysql_connect($databasehost,$databaseusername,$databasepassword) or die(mysql_error());
    //@mysql_select_db($databasename) or die(mysql_error());

    $ Γραμμές = 0?
    $ Ερωτήματα = ""?
    $linearray = array();

    $count = 0;

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

    $count = $count + 1;

    $ Γραμμές + +?

    $line = trim($line,”\t”);

    $line = str_replace(“'”,”\'”,$line);

    $ Linearray = εκραγεί ($ fieldseparator, $ line)?

    $linemysql = implode(“','”,$linearray);

    $query = “insert into `your db table` VALUES('$count','$linemysql');”;

    $queries .= $query . “\n”;

    @ Mysql_query ($ query)?
    }

    //@mysql_close($con);

  110. » Converting csv to sql using php @The Coding Pad: Programming blog, discussions, tutorials, resources
    Sep 24th, 2007 at 14:12
  111. Len Lulow
    Feb 28th, 2007 at 20:11

    Thanks a lot this saved lots of time! Nice script.

  112. S. Martinez
    Feb 22nd, 2007 at 12:17

    I usually use phpmyadmin, but true, in case one does not have it installed, and does not have shell access (like most of the shared hosting providers), this can come in very handy.

  113. Τζέικ
    Feb 25th, 2007 at 06:31

    Very useful, thank you.