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

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

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

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

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

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

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

Ετικέτες:
  1. Jorge Dias
    14 του Μάρτη, 2011 στις 19:01

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

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

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

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

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

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

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

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

  4. 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

  5. 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)?

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

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

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

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

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

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

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

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

  9. Λαβύρινθος
    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"?
    $ Μήνυμα «Ολόκληρο το ερώτημα:« .=. $ Ερώτημα?
    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"?

    ;>

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

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

    keywords_categories

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

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

    @ Warren

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @ Pruthvi

    Γεια σου,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    $ Result = mysql_query ($ query)?

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

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

    @ Ψάρια Andrew

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

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

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

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

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

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

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

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

    @ Neady

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

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

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

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

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

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

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

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

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

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

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

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

  30. 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

  31. 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 να με βοηθήσει, ευχαριστώ εκ των προτέρων

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

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

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

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

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

    @ Zeshan

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

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

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

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

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

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

  37. 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

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

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

  39. 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 ".?

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

    Γεια σου,

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

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

    Μπράβο!

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

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

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

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

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

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

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

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

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

    Χάρη
    Haan

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Ευχαριστώ,
    Coulton

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

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

  51. 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

  52. 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»)?

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

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

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

    ευχαριστίες

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

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

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

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

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

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

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

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

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

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

  58. 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

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

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

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

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

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

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

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

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

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

    ευχαριστίες

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

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

  63. 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"?
    }

  64. 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 σενάριο.

    Τέλος, πρέπει να θυμηθείτε να ρυθμίσετε τους δείκτες στη βάση δεδομένων για την, "σε διπλότυπο ..." στην εργασία, αυξήσεις auto δεν θα λειτουργήσει σε αυτήν την περίπτωση, έτσι θα πρέπει να ορίσετε ένα δευτερεύον ευρετήριο στα τραπέζια προσαύξηση αυτοκινήτων, τους πίνακες που don t αύξηση auto »και διαθέτουν μοναδικά πεδία συνεργαστεί με το ενιαίο δείκτη, αν αυτή είναι η διαδρομή που θα θέλατε να πάτε.

    Ελπίζω ότι αυτό βοηθά κάποιος!

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

  65. phpwebdesigner2010
    8 Δεκέμβρη του 2009 στις 21:39

    Θα πρέπει να κατεβάσετε τα δεδομένα αυτόματα από ένα απομακρυσμένο server. ένα αρχείο του CSV, και χρειάζομαι για να το αποσυμπιέσετε, και να αποθηκεύουν τα δεδομένα σε μια βάση δεδομένων mysql που δημιούργησα. Υπάρχουν πολλές βάσεις δεδομένων. Το πρώτο τμήμα είναι κάτω από μία από τις βάσεις δεδομένων που κάποιος μου βοήθησε με και λειτουργεί θαυμάσια. Έχω δημιουργήσει μια περιοδική εργασία και το κατέβασμα αυτόματα όπως είχε προγραμματιστεί. Ωστόσο, έχω περισσότερες βάσεις δεδομένων και λοξοτομώ παίρνω τους άλλους να εργαστούν.

    ΑΥΤΟ ΤΟ ΤΜΗΜΑ ΠΑΡΑΚΑΤΩ δουλεύει μια χαρά!!
    --------------------------

    ! / Bin # / bash

    deleteparam = '-διαγραφή-μετά το «?
    # Deleteparam = "
    # Directory = '-directory-prefix = / $ HOME / myFolder / myFolder / »
    directory = "
    # Userpwd = "-http-user = μπλα-http-password = μπλα»

    toUpper () {
    echo $ 1 | tr "[: lower:]" "[: άνω:]"
    }

    # If [-z "$ 1"]? Τότε
    # Echo χρήσης: $ 0 τραπέζι
    # Exit
    # Fi

    ZIP όνομα = του αρχείου δεδομένων στο απομακρυσμένο server
    ΤΚ = `toUpper $ ZIP»

    # Το αρχείο μέσα στο zip έχει ένα λιγότερο _
    ΣΤΟΙΧΕΙΑ όνομα = του πίνακα του MySQL βάση δεδομένων μου
    DATA = `toUpper $ ΔΕΔΟΜΕΝΩΝ»

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

    cd / $ HOME / myFolder / myFolder /
    ####### Πάρει την οικιστική

    «Wget https://3pv.mlslirealtor.com/Data3pv/DownloadBRSaction.asp?user_code=XXXXXX&password=XXXXXXX&data_type=datazip »-O $ ZIP.csv.zip
    ύπνου 10
    ####### Αποσυμπιέστε
    pwd
    ls-la

    unzip-o $ ZIP.csv.zip
    ύπνου 10
    ####### Φορτώσει

    wget-verbose $ deleteparam κατάλογο $ $ userpwd https://mywebsite/myfolder/import.php?table = $ ΔΕΔΟΜΕΝΩΝ
    ύπνου 300

    ###### Διαγράψετε τα αρχεία

    rm $ ZIP.csv.zip
    rm $ DATA.csv
    ύπνου 10
    _ ---------------------------
    Όλα αυτά πάνω εργασιών WONDERFUL

    ΑΥΤΟ ΕΙΝΑΙ ΤΙ Χρειάζομαι βοήθεια με
    --------------------------
    1. Χρειάζομαι ένα script για να προσθέσει με το παραπάνω αρχείο που θα κατεβάσετε τις φωτογραφίες. Αν δείτε παρακάτω Χρειάζομαι ένα script που παίρνει αυτόματα την ημερομηνία CURRENT και την ώρα που το σενάριο είναι έτρεξε. Υπάρχουν server κρατά pic από τις τελευταίες 7 ημέρες και ενημερώνεται συνεχώς. Μόλις αυτό το σενάριο είναι έτρεξε θα κατεβάσετε τα δεδομένα σε πίνακα που έχω δημιουργήσει.

    2. Στη συνέχεια, χρειάζομαι ένα script που τα ερωτήματα τα mysql βάση δεδομένων ψάχνει για καταχωρήσεις που έχουν φωτογραφίες και στη συνέχεια να ανακτήσει τις πραγματικές φωτογραφίες απευθείας από απομακρυσμένους διακομιστές τους. Αυτό το αρχείο csv ΔΕΝ κατεβάσετε φωτογραφίες, απλώς τα στοιχεία που μπορώ να χρησιμοποιήσω για να εκτελέσετε μια δέσμη ενεργειών για να ανακτήσετε τις φωτογραφίες σε ένα συγκεκριμένο σημείο. Δείτε παρακάτω.
    Παρακάτω είναι οι οδηγίες που έλαβα.

    ΟΔΗΓΙΕΣ
    Φωτογραφία των δεδομένων που ανακτώνται από HTTP. Τα δεδομένα φωτογραφίες ενημερώνεται μία φορά την ημέρα και είναι διαθέσιμο για download σε ένα αρχείο CSV. Μπορείτε να γράψετε στη συνέχεια ένα script χρησιμοποιώντας τα δεδομένα από το αρχείο CSV για να σε μεταφέρουν πίσω στις εικόνες στον server μας εικόνα. Πρέπει να παρέχετε μια τιμή για το query string last_updt> «YYYYMMDD HH: MM: SS» για τη διεύθυνση URL για να επιστρέψετε τα δεδομένα. The last_updt πεδίο είναι η τιμή ημερομηνίας για την τελευταία φορά που μια φωτογραφία άλλαξε στο χρηματιστήριο.

    Θα χρειαστεί να αντικαταστήσει τους κατόχους τόπο user_code και τον κωδικό πρόσβασης (ΧΧΧΧ) με τη σύνδεση διαπιστευτήρια που σας παρέχονται.

    Βήμα 1: Για να ανακτήσετε τα πρωτογενή φωτογραφία χρηματιστήριο δεδομένα αρχείου CSV μεταβείτε στην παρακάτω διεύθυνση URL.

    https://remotewebserver/Data3pv/DownloadBRSaction.asp?user_code=XXX&password=XXXX&query_str=last_updt% 20%> 20'YYYYMMDD 20HH%: MM: SS '& DATA_TYPE = ΦΩΤΟΓΡΑΦΙΕΣ

    Βήμα 2: Τα δεδομένα του πίνακα φωτογραφίες θα πρέπει να κατεβάσετε σε μορφή CSV.

    Βήμα 3: Χρησιμοποιώντας τις σημαίες Υ και η ML αριθμός των δεδομένων που μπορείτε να σύνδεση πίσω σε τοποθεσίες εικόνα μας.

    πρωτογενή διαδρομή καταλόγου μας εικόνα έχει ως εξής:

    https://remoteserver/folder/folder/folder/Last3DigistsofML # / # χρηματιστήριο. jpg

    Για παράδειγμα-Η κύρια φωτογραφία για τον αριθμό καταλόγου 1899430 βρίσκεται στο

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

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

    https://remoteserver/mlsphotos/full/PhotoPosition/Last3DigistsofML # / χρηματιστήριο # _photoPosition.jpg

    Για παράδειγμα-Η δεύτερη φωτογραφία για τον αριθμό καταλόγου 1899430 βρίσκεται στο

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

  66. Nathan
    20 του Οκτώβρη 2009 στις 05:59

    Γεια σου, μου λέει ο αριθμός των ρεκόρ, αλλά δεν θέτει τα δεδομένα στη βάση δεδομένων

    Ελπίδα μπορείτε να βοηθήσετε

    Nathan

  67. admin
    8 Οκτώβρη 2009 στις 16:48

    η εντολή είναι: περικόψτε TABLENAME.

    μπορείτε να εισαγάγετε τα ακόλουθα στη γραμμή 58:
    @ Mysql_query ("μηδενισμός $ databasetable")?

    αλλά αυτό είναι μη αναστρέψιμη! οπότε να είστε προσεκτικοί

  68. MAFF
    7 Οκτωβρίου 2009 στις 07:24

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

    TRUNCATE, ΕΝΗΜΕΡΩΣΗ; Πώς μπορώ να βρω αυτό το ερώτημα;

  69. admin
    5 του Οκτώβρη 2009 στις 08:46

    @ Andy Brotherton : Αυτό σημαίνει ότι το ερώτημα επιχειρεί να εισαγάγετε ένα αρχείο με έναν αριθμό των στηλών που δεν ταιριάζουν με αυτό του πίνακα της βάσης δεδομένων.

    1) Είστε σίγουροι ότι το αρχείο CSV έχει ακριβώς τον ίδιο αριθμό στηλών και ο πίνακας στη βάση δεδομένων;
    2) Είναι το διαχωριστικό πεδίων σε αυτό το αρχείο CSV πραγματικά ένα κόμμα; ή πρόκειται για μια καρτέλα, για παράδειγμα, ή άλλων; Εάν δεν είναι ένα κόμμα, αλλάξτε την τιμή των $ fieldseparator στη γραμμή 12
    3) Ο πίνακας θα πρέπει να έχουν ήδη δημιουργηθεί στη βάση δεδομένων πριν επιχειρήσετε να φορτώσετε τα δεδομένα σε αυτό. Είστε σίγουροι ότι το έχετε;

  70. Andy Brotherton
    4 Οκτωβρίου 2009 στις 14:14

    Γεια σας,

    Θα ήθελα πραγματικά να χρησιμοποιήσει αυτό το σενάριο, αλλά δεν είμαι σίγουρος τι κάνω λάθος. Έχω το ίδιο πρόβλημα που αναφέρθηκαν παραπάνω δεν φόρτιση δεδομένων στην db. Βρίσκει το σωστό αριθμό των γραμμών, αλλά τίποτα δεν δείχνει στην db.

    Έχω αλλάξει γραμμή 88 @ mysql_query ($ query) ή πεθαίνουν (mysql_error ())?

    και να πάρετε αυτό το μήνυμα "Στήλη καταμέτρηση δεν ταιριάζει μετράνε αξία σε σειρά 1"

  71. admin
    Τρίτης Οκτωβρίου 2009 στις 18:02

    @ Βασίλης
    Γεια σου Βασίλη.
    Το CSV πράγματι περιέχει μια απλή εγγραφή;

    Δεδομένου ότι το σενάριο φθάσει στο στάδιο όπου εξόδους τον αριθμό των εγγραφών, υποθέτω ότι δεν αποτυγχάνουν όταν συνδέεται με τη βάση δεδομένων (γραμμές 56-57), έτσι ώστε δεν είναι το πρόβλημα.

    Είναι πιθανό ότι το ερώτημα να εισαγάγετε δεδομένα αποτυγχάνει.
    Δοκιμάστε την αντικατάσταση γραμμή 88 με:
    mysql_query ($ query) ή πεθαίνουν (mysql_error ())?

    και να ελέγξετε τι λάθος που παίρνετε.

  72. admin
    Τρίτης Οκτωβρίου 2009 στις 17:58

    @ Okoth
    Γεια σας Okoth.

    Το πιο πιθανό, μπορείτε να απαλλαγείτε από τις γραμμές 33-54 και την αντικατάστασή τους με αυτήν την ενιαία γραμμή:

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

    αντικαταστήστε τις τελείες με το κατάλληλο url (άμεση url για το αρχείο CSV)

  73. admin
    Τρίτης Οκτωβρίου 2009 στις 17:54

    @ Adrian
    Γεια σας Adrian.
    Το Drupal, όπως σημείωσε, έχει πολύπλοκες δομές πίνακα. Ανάλογα με το είδος των δεδομένων που εισάγετε, είναι πολύ πιθανό ότι αυτά τα δεδομένα πρέπει να χωριστεί σε πολλούς πίνακες, συνήθως με μια κοινή εξωτερική πολιτική βασικά, όπως το id κόμβο.
    Δυστυχώς, το σενάριο πιο πάνω δεν θα βοηθήσει το κάνουμε αυτό.

  74. Okoth
    18 Σεπτεμβρίου, 2009 στις 20:16

    Ευχαριστώ για το σενάριο. Πολύ κατανοητό.

    Πώς μπορώ να τροποποιήσω αυτό το σενάριο, έτσι ώστε να προσκομίζει και να αποθηκεύουν ένα αρχείο CSV από το Internet σε MySQL;

  75. Adrian
    13, Σεπτεμβρίου, 2009 στις 19:03

    Γεια σε όλους
    Είμαι χρησιμοποιώντας το Drupal να οικοδομήσουμε μια νέα ιστοσελίδα, η πρόκληση που έχω τώρα είναι ότι πρέπει να εισαγάγετε δεδομένα από ένα αρχείο CSV σε μια βάση δεδομένων mysql η οποία έχει κοινά τραπέζια, συνεπώς, κάποια από τα πεδία στα οποία θα πρέπει να εισάγει δεδομένα CSV βρίσκονται σε διαφορετικά σημεία της ίδιας βάσης δεδομένων θα λειτουργεί αυτό το σενάριο για μένα; Εάν δεν μπορείτε να το αρχείο csv να εισαχθεί άλλης μεθόδου;

    Παρακαλείστε να ενημερώσετε, σας ευχαριστώ για οποιαδήποτε βοήθεια.

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

  76. Claus
    11 Σεπτεμβρίου 2009 στις 12:59

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

    Φαίνεται να έχουν το εργασιακό σεναρίου ... exept ότι δεν γράφει τα δεδομένα με το mysql ...
    Όπως και με τον Chris: Το σενάριο ολοκληρωθεί, ακόμα και για έξοδο την καταμέτρηση ρεκόρ, αλλά δεν αγγίζει τη βάση δεδομένων σε όλα ... αλλά μου λέει: Βρέθηκαν συνολικά 1 εγγραφές σε αυτό το αρχείο CSV.

    Τι μπορώ να κάνω λάθος (im ένα noob σε PHP και MySQL)

    Χάρη
    Claus

  77. admin
    26 Αυγούστου του 2009 στις 03:20

    Γεια σου Stanley, το πρόβλημα είναι με το ενιαίο εισαγωγικά. Το blog του λογισμικού ξαναγράφει τους εδώ. Απλά αντικαταστήστε »και« με »

    PS: η παραπάνω εντολή είναι να φορτώσετε απευθείας ένα αρχείο csv στη βάση δεδομένων από την MySQL εντολών. Αυτό είναι ωραίο, αλλά δεν σχετίζονται με το παραπάνω script :)

  78. Stanley Zdun
    24 Αυγούστου 2009 στις 18:19

    λέει να φορτώσει αυτό στη βάση δεδομένων

    Δεδομένα φορτίου "PATH" τοπικής infile σε πίνακα ΘΕΣΗ πεδία καταγγελθεί από »,« γραμμών καταγγελθεί από '\ n'?

    μπορώ να αλλάξω τη διαδρομή και τον πίνακα του να εισέλθει αλλά μου δίνει ένα σφάλμα που το λανθασμένο κωδικό της σύνταξης 1064

    μπορεί κανείς να μου δώσει κάποιες συμβουλές για το τι πρέπει να κάνουμε

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

  79. Gary Pearman
    23 Φλεβάρη, 2009 στις 07:25

    Όσον αφορά το ζήτημα εισαγωγικά, μπορείτε να χρησιμοποιήσετε μόνο το εξής:

    $ Linearray = preg_split ("/,(?=(?:[^ \ "] * \" [^ \ "] * \ ")*(?![^ \"] * \ "))/", $ γραμμή )?

    Εις υγεία,
    Gaz.

  80. admin
    18 Δεκέμβρη 2008 στις 17:35

    Αγαπητέ Χρήστο,

    παρακαλούμε να αντικαταστήσει:
    @ Mysql_query ($ query)?
    με:
    @ Mysql_query ($ query) ή πεθαίνουν (mysql_error ())?

    και επιτρέψτε μου να ξέρω τι λάθος σας δίνει

  81. Chris
    18 Δεκέμβρη 2008 στις 14:31

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

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

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

    Χάρη
    Γ

  82. admin
    1 Δεκέμβρη, 2008 στις 14:10

    Hi Mark,

    Κατ 'αρχάς, είναι αναφερόμενος στο αρχείο που επιλέξατε στο $ αρχείο_εξόδου μεταβλητή.
    Δεύτερον, αυτό το αρχείο πρέπει να είναι εγγράψιμο. Υποθέτω ότι χρησιμοποιείτε Linux, δεν παράθυρα, καθώς αυτό δεν είναι γενικά ένα θέμα με τα παράθυρα.
    Σε Linux, απλά SSH στη μηχανή, αλλάξτε τον κατάλογο όπου βρίσκεται το αρχείο εξόδου είναι, και τον τύπο: chmod 777 filename
    όπου "filename" είναι το πραγματικό όνομα αρχείου.
    Αν δεν έχετε SSH, πολλοί πελάτες FTP αλλαγή υποστήριξη άδεια. Για το σκοπό αυτό, FTP στο φάκελο που περιέχει το αρχείο εξόδου, στη συνέχεια επιλέξτε αυτό το αρχείο, και να εντοπίσετε από αυτό το λογισμικό ftp τη δυνατότητα να αλλάξετε την άδεια. Ρυθμίστε το σε 777, ή να «διαβάζει, να γράφει, να εκτελούν» για όλους.

  83. MarkFromHawaii
    19 του Νοέμβρη, 2008 στις 04:00

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

    Ευχαριστώ για το σενάριο. Είμαι noob σε PHP και MySQL γι 'αυτό εκτιμώ πραγματικά κάτι σαν αυτό. Πήρα όσον αφορά τη δημιουργία του "Το αρχείο δεν είναι εγγράψιμος, τα δικαιώματα ελέγχου" μήνυμα λάθους στο πρόγραμμα περιήγησης. Μπορεί κάποιος παρακαλώ να εξηγήσει το σχόλιο σχετικά με τη ρύθμιση την άδεια σε 777; Είμαι με τη χρήση του Excel που δημιουργείται. Csv αρχείο? Ευχαριστώ εκ των προτέρων.

  84. γονίδιο
    29 του Οκτώβρη 2008 σε 9:28

    Μπορώ να πάρω μόνο την πρώτη γραμμή του αρχείου CSV μου που πρόκειται να εισαχθούν στη βάση δεδομένων.
    Εδώ είναι ένα αντίγραφο του αρχείου καταγραφής:

    εισαγάγει στον αξίες παραγωγής ("," 2008-10-21 ', '50', '50 ', '50', 'αυτή είναι η πρώτη γραμμή σημειώσεις »,« αυτό είναι σημειώσεις γραμμή 2 »,« αυτό είναι σημειώσεις γραμμή 3 », 0000-00-00 ', 0000-00-00', 0000-00-00 ', '456 Λεωφ. Morningside», Ste. 512 »,« Μπρούκλιν »,« Νέα Υόρκη », '10023', «Τζο», «Πελάτης 1»,)?
    εισαγάγει στον αξίες παραγωγής ("," 2008-10-09 ', '50', '50 ', '50', 'αυτή είναι η πρώτη γραμμή σημειώνει',",",' 10.09.2008, '2008 «Πελάτης 1 '-10 - 14', 0000-00-00 ', '456 Λεωφ. Morningside», «ste 512», «Μπρούκλιν», «Νέα Υόρκη», '10023', 'Joe',).?
    εισαγάγει στον αξίες παραγωγής ("," 2008-10-14 ', '25', '25 ', '25', 'ΣΗΜΕΙΩΣΕΙΣ 1',",",' 10/14/2008 », '2008-10-17 »,« NULL », '555 κάπου», «Σουίτα 123», «νέες y», «New York»,, '10001 ',' Joe ',' Όνομα 1 ')?
    εισαγάγει στον αξίες παραγωγής ("," 2008-10-16 ', '45', '45 ', '45',",",",' 10/16/2008 », '2008-10-24', ' NULL',",",",",",' Τομ',");
    εισαγάγει στον αξίες παραγωγής ("," 2008-10-01 »,« 34 »,« 34 »,« 34',",",",' 10/02/2008 », '2008-10-04», 10/04/2008',",",",",",' Steve',");
    εισαγάγει στον αξίες παραγωγής ("," 2008-10-17 ', '50', '50 ', '50', 'αυτή είναι η πρώτη γραμμή σημειώνει',",",' 03/10/2008 », 0000 «Πελάτης 1» -00-00 », 0000-00-00 ', '456 Λεωφ. Morningside», «ste 512», «Μπρούκλιν», «Νέα Υόρκη», '10023', 'Joe',).?
    εισαγάγει στον αξίες παραγωγής ("," 2008-10-18 ', '25', '25 ', '25', 'ΣΗΜΕΙΩΣΕΙΣ 1',",",' 10/04/2008 », 0000-00-00 », 0000-00-00 ', '555 κάπου», «Σουίτα 123», «νέες y Νέας Υόρκης», «', '10001 ',' Joe ',' Όνομα 1 ')?
    εισαγάγει στον αξίες παραγωγής ("," 2008-10-19 ', '45', '45 ', '45',",",",' 05/10/2008 », 0000-00-00», 0000-00-00',"); Τομ',",",",",",'
    εισαγάγει στον αξίες παραγωγής ("," 2008-10-20 »,« 34 »,« 34 »,« 34 »,« νέες σημειώσεις',",",' 10/06/2008 », 0000-00-00 », 0000-00-00',",",",",",' Steve',");
    εισαγάγει στον αξίες παραγωγής ("," 2008-10-21 ', '12', '12 ', '12', 'ακόμα νεώτερη σημειώνει',",",' 10/07/2008 », 0000-00- 00 ', 0000-00-00',"); σήμα',",",",",",'
    εισαγάγει στον αξίες παραγωγής ("," 2008-10-22 »,« 1 »,« 0 »,« 0',",",",' 08/10/2008 », 0000-00-00», 0000-00-00',",",",",",",");
    εισαγάγει στον αξίες παραγωγής ("," 2008-10-23 ', '2', '0 ', '0',",",",' 09/10/2008 », 0000-00-00», 0000-00-00',",",",",",",");
    εισαγάγει στον αξίες παραγωγής ("," 2008-10-24 ', '3', '0 ', '0',",",",' 10/10/2008 », 0000-00-00», 0000-00-00',",",",",",",");
    εισαγάγει στον αξίες παραγωγής ("," 2008-10-15 ', '0', '0 ', '0', 'αργότερα',",",' 11/10/2008 », 0000-00-00' , 0000-00-00',",",",",",",");
    εισαγάγει στον αξίες παραγωγής ("," 2008-10-16 ', '0', '0 ', '0', 'αργότερα ακόμα',",",' 10/12/2008 », 0000-00-00 », 0000-00-00',",",",",",",");
    εισαγάγει στον αξίες παραγωγής ("," 2008-10-17 ', '0', '0 ', '0', 'αργότερα ακόμα',",",' 10/13/2008 », 0000-00-00 », 0000-00-00',",",",",",");
    εισαγάγει στον αξίες παραγωγής ("," 2008-10-18 ', '0', '0 ', '0', 'αργότερα ακόμα',",",' 10/14/2008 », 0000-00-00 », 0000-00-00',",",",",",");
    εισαγάγει στον αξίες παραγωγής ("," 2008-10-19 »,« 0 »,« τελευταία',",",' 0000-00-00 «0», «0»,, 0000-00-00 ' , 0000-00-00',",",",",",");
    εισαγάγει στον αξίες παραγωγής ("," 2008-10-01 »,« 34 »,« 34 »,« 34 »,« πολύ πρόσφατες',",",' 10/02/2008 », '2008-10-04 »," 2008-10-04 Bruce',",",",",",' ')?
    εισαγάγει στον αξίες (","); παραγωγής

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

  85. enim
    23 Οκτώβρη 2008 στις 4:16

    δεν είχε εισαγάγει στον πίνακα της βάσης δεδομένων όπου θέλω τοποθετήσει ..: (

  86. Είσοδος
    20 Οκτωβρίου, 2008 στις 18:10

    Νίκαια κύριο έργο ;-)

  87. Φιντέλ Gonzo
    10 Οκτώβρη 2008 στις 5:12

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

    Έκανα μια μικρή αλλαγή στον κώδικά σας, έτσι ώστε να λειτουργεί ως εισαγωγέας CSV, όπως θα έπρεπε.

    CSV-ες πρώτη γραμμή πρέπει να κρατούν τη στήλη ονόματα που θέλετε να εισάγετε, έτσι την αλλαγή του βρόχου foreach:
    foreach (split ($ lineseparator, $ csvcontent) όπως $ γραμμή) {

    $ Γραμμές + +?

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

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

    / * Πάρει ΣΤΗΛΗ ονόματα από πρώτη γραμμή * CSV /
    if ($ γραμμές == 1) {
    $ Columns = εκραγεί ($ fieldseparator, $ line)?

    $ Columnsql = implode στήλες (",",$)?

    echo $ columnsql?
    συνεχίσει?
    }

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

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

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

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

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

    @ Mysql_query ($ query)?
    }

  88. admin
    6 Οκτώβρη 2008 στις 00:27

    Πόσο μεγάλο είναι το αρχείο που προσπαθείτε να εισαγάγετε;
    σε κάθε περίπτωση, προσπαθήστε να προσθέσετε την ακόλουθη γραμμή μετά την αρχική ετικέτες ανοίγματος:
    συνάρτηση set_time_limit (300)?
    Αυτό θα δώσει το σενάριο έως και 5 λεπτά (300 δευτερόλεπτα) της προθεσμίας εκτέλεσης.
    Αντικατάσταση 300 με 0 θα του επιτρέψουν να λαμβάνει όσο χρόνο χρειάζεται.

  89. Phillip
    1 Οκτώβρη 2008 στις 22:26

    Γεια σου, ωραία ευχαριστώ σενάριο. Όταν εκτελείτε παίρνω:
    Μοιραίο λάθος: Ο μέγιστος χρόνος εκτέλεσης των 30 δευτερολέπτων υπέρβαση στη γραμμή 63

    Υπάρχει κάτι που μπορώ να κάνω για να πάρω γύρω από αυτό;

  90. Roelof
    30 Σεπτέμβρη 2008 στις 08:06

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

    Θα μπορούσατε να ελέγξετε τον κωδικό όπως εμφανίζεται εδώ; Είναι κάτι λείπει;

  91. ASCASC
    27 Σεπτεμβρίου, 2008 στις 05:04

    brad, αν είχε κατεβάσει νωρίτερα από την περασμένη εβδομάδα, αντικαταστήστε το "<?" στην κορυφή με '<? php "(αφαίρεση διάστημα)

  92. Ακέφαλο καρφί
    26 Σεπτέμβρη 2008 στις 14:43

    να πάρω το πρώτο κατά το ποσό που αποκόπτονται και το υπόλοιπο μόλις κώδικα στο πρόγραμμα περιήγησης. Γνωρίζω php λειτουργεί, διότι το υπόλοιπο της τοποθεσίας έργων.
    Έκανα αναβάθμιση σε php5 κάνει αυτό το θέμα;

  93. Robbie
    24 του Σεπτεμβρίου, 2008 στις 14:27

    )
    ? / / Παραλείψετε επειδή εμπίπτει τα κακά στοιχεία πίνακα
    αλλού
    $ Newarray [$ y] = linearray ('"',",$ str_replace [$ y])?
    $ Linearray = array_values ​​($ newarray)? / / Επαναφέρετε τα κλειδιά για τη νέα συστοιχία
    $ X + +?
    }
    }
    }

  94. Robbie
    24 του Σεπτεμβρίου, 2008 στις 14:27

    Λοιπόν, εδώ είναι η αποτύπωση στο προηγούμενο σχόλιο μου:

    ένθετο αυτό στο μεταξύ:

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

    ... Απόσπασμα κώδικα εισάγετε παρακάτω ....

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

    Βρίσκει και διατηρεί όλες τις "Stuff, περισσότερα πράγματα" μαζί πριν καταρρέουσα αυτό.

    $ A = ""?
    $ B = ""?
    $ Qoutecount = 0?
    για ($ x = 0? $ x -1) {
    $ Qoutecount + +?
    if ($ qoutecount == 1)
    $ A = $ x? / / Κατάστημα πρώτη φάση
    elseif ($ qoutecount == 2) {
    $ Quotecount = 0?
    $ B = $ x? / / Κατάστημα δεύτερο βαθμό
    / / Που τα κάνει ... συγκεντρώνουν όλα τα στοιχεία από $ a και $ b στην $ a και να αγνοούν τα στοιχεία κάτι μετά την $ a και $ b στην νέα σειρά?
    $ Newa = ""? / / Αρχικοποίηση νέο string.
    για ($ z = $ a? $ z $ a & & $ y

  95. Robbie
    24 του Σεπτεμβρίου, 2008 στις 12:19

    Δεν λαμβάνει υπόψη τομείς όπως η γραμμή αυτή:
    ΟΝΟΜΑ, ΕΠΙΘΕΤΟ, "Εταιρία, ΕΠΕ", Πόλη, Πολιτεία, Τ.Κ.

    Εταιρείας και Inc πάρει χωρίστηκε σε δύο διαφορετικές στήλες.

  96. Steve
    12 Σεπτεμβρίου 2008 στις 12:19

    Rengaraj,
    το αρχείο CSV θα πρέπει να είναι στην ίδια θέση με το αρχείο PHP.
    Επίσης, δεν χρειάζεται πραγματικά να χρησιμοποιούν το ίδιο όνομα αρχείου CSV.
    bbqrest.csv είναι ένα παράδειγμα, αντικαταστήστε το όνομα αρχείου με το δικό σας.

  97. Rengaraj
    12 Σεπτεμβρίου 2008 στις 12:16

    Κάθε ένας μπορεί να απαντήσει γρήγορα Έχω ένα bbqrest.csv csv αρχείο στο σωστό δρόμο (root) ..

  98. Rengaraj
    12 Σεπτεμβρίου 2008 στις 12:11

    Έχω αρχίσει αυτό το λάθος αρχείο δεν βρέθηκε. Βεβαιωθείτε ότι έχετε ορίσει το σωστό μονοπάτι.

  99. ollyd
    9 Σεπτεμβρίου 2008 στις 06:35

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

  100. Ιωσήφ
    3 του Σεπτέμβρη, 2008 στις 12:39

    Steve,

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

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

  101. steve
    31 Αυγούστου 2008 στις 19:04

    Σύνολο newbie - τραβώντας τα μαλλιά μου έξω προσπαθεί να εισάγει Excel csv σε phpMyAdmin (σε Mac). Θα θέλαμε να γνωρίζουμε ακριβώς πού και τι να κάνω με αυτό το σενάριο ... php?

  102. Dani
    25 Αυγούστου, 2008 στις 20:06

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

  103. »CSV εισαγωγής
    7 Ιούνη 2008 στις 10:29
  104. Εισαγωγή ένα κόμμα οριοθετημένο αρχείο σε MySQL με PHP Script | Ηλεκτρονικό Εμπόριο & SEO
    30 Νοεμβρίου, 2007 στις 11:59
  105. hfvd
    24 Οκτώβρη 2007 στις 12:44

    Γεια σου, μια μικρή τροποποίηση για τις τιμές αυτοκινήτων αυξάνουνε Στη στήλη 1 (id πεδίο)

    βλέπε μεταβλητή $ count.

    ola, Enrico.

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

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

    $ Count = 0?

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

    $ Count = $ count + 1?

    $ Γραμμές + +?

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

    $ Γραμμή ("'"," str_replace = \ '", $ line)?

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

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

    $ Query = "Εισαγωγή σε« ΑΞΙΕΣ πίνακα db σου »(« $ count ',' $ linemysql');";

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

    @ Mysql_query ($ query)?
    }

    / / @ Mysql_close ($ con)?

  106. »Μετατροπή csv σε SQL χρησιμοποιώντας php @ Η Κωδικοποίηση Pad: Προγραμματισμός blog, συζητήσεις, σεμινάρια, τους πόρους
    24 Σεπτεμβρίου 2007 στις 14:12
  107. Len Lulow
    28 του Φλεβάρη, 2007 στις 20:11

    Ευχαριστώ πολύ αυτό το αποθηκεύσει τα μέρη του χρόνου! Νίκαια σενάριο.

  108. S. Martinez
    22 Φεβρουαρίου, 2007 στις 12:17

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

  109. Τζέικ
    25 Φλεβάρη 2007 στις 6:31

    Πολύ χρήσιμο, ευχαριστώ.