CSV import in SQL

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP er

PHP er

15/04/2013 18:05:10
Quote Anchor link
Hi,

Ik heb een scriptje gevonden op PHPHulp om een CSV in de SQL database te zetten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    $file_handle = fopen("test.csv", "r");

    while (($line_of_data = fgetcsv($file_handle, 1000, ",")) !== FALSE) {
        $line_import_query= "INSERT into NewslettersNoCustomers values('', '".$line_of_data[0]."', 'Active')";
        mysql_query($line_import_query) or die(mysql_error());
    }

if($line_import_query)
    {
         echo "Invoeren van de Emails is gelukt!";
    }
    else
    {
        echo "Invoeren van de Emails is niet gelukt";
    }


Echter, heb ik de vraag hoe ik kan instellen, dat die ".$line_of_data[0].", een bepaalde kolom in dat CSV bestand is.

De kolom heet AU (de 37e kolom beginnend van A) en dan gewoon elke rij.

Weet iemand hoe ik dit het beste kan doen?
 
PHP hulp

PHP hulp

25/12/2024 17:11:07
 
Eddy E

Eddy E

15/04/2013 18:13:57
Quote Anchor link
Doe eens dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
    while (($line_of_data = fgetcsv($file_handle, 1000, ",")) !== FALSE) {
        print_r($line_of_data);
    }

?>


Wat komt daar steeds uit?
Kijk even naar de key.
Waarschijnlijk bij 36?
Zo ja:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
    while (($line_of_data = fgetcsv($file_handle, 1000, ",")) !== FALSE) {
        $line_import_query= "INSERT into NewslettersNoCustomers values('', '".$line_of_data[36]."', 'Active')";
        mysql_query($line_import_query) or die(mysql_error());
    }

?>


Dus ik heb de [0] gewijzigd naar [36] (wat waarschijnlijk rij 37 is aangezien PHP begint te tellen bij 0 en Excel/CSV bij 1).
 
PHP er

PHP er

15/04/2013 18:20:26
Quote Anchor link
Eddy E op 15/04/2013 18:13:57:
Doe eens dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
    while (($line_of_data = fgetcsv($file_handle, 1000, ",")) !== FALSE) {
        print_r($line_of_data);
    }

?>


Wat komt daar steeds uit?
Kijk even naar de key.
Waarschijnlijk bij 36?
Zo ja:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
    while (($line_of_data = fgetcsv($file_handle, 1000, ",")) !== FALSE) {
        $line_import_query= "INSERT into NewslettersNoCustomers values('', '".$line_of_data[36]."', 'Active')";
        mysql_query($line_import_query) or die(mysql_error());
    }

?>


Dus ik heb de [0] gewijzigd naar [36] (wat waarschijnlijk rij 37 is aangezien PHP begint te tellen bij 0 en Excel/CSV bij 1).


Hey Eddy,

Wanneer ik 't trucje met print_r doe, krijg ik alle arays te zien met alle gegevens (dus ook voornamen, achternamen e.d. in die tabel)

En wanneer ik vervolgens
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
    while (($line_of_data = fgetcsv($file_handle, 1000, ",")) !== FALSE) {
        $line_import_query= "INSERT into NewslettersNoCustomers values('', '".$line_of_data[36]."', 'Active')";
        mysql_query($line_import_query) or die(mysql_error());
    }

?>


doe, insert hij wel maar blijft de kolom van ".$line_of_data[36]." leeg. Het is trouwens een geëxporteerd csv bestand vanuit Hotmail, de contactpersonen zegmaar
 
Eddy E

Eddy E

15/04/2013 18:50:25
Quote Anchor link
Weet je nou exact in welke key hetgeen zit wat je zoekt?
Ik neem aan emailadressen of zo?

Toon eens een 0 tm ... van die print_r().
 
PHP er

PHP er

15/04/2013 18:53:08
Quote Anchor link
Eddy E op 15/04/2013 18:50:25:
Weet je nou exact in welke key hetgeen zit wat je zoekt?
Ik neem aan emailadressen of zo?

Toon eens een 0 tm ... van die print_r().


Hey Eddy,

Ik krijg bijvoorbeeld deze output te zien:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Array ( [0] => Rodney;;vth;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;[email protected];SMTP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;[email protected] ) Array ( [0] => Antony;;Tent;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;[email protected];SMTP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;[email protected] ) Array ( [0] => Arco;;....;;;;;;Houten;;;Nederland;"Prive )
 
Erwin H

Erwin H

15/04/2013 19:06:00
Quote Anchor link
Klinkt alsof je de verkeerde delimiter gebruikt. In je code gebruik je een ',', maar het bestand gebruikt blijkbaar ';' als delimiter.
 
PHP er

PHP er

15/04/2013 19:25:18
Quote Anchor link
Erwin H op 15/04/2013 19:06:00:
Klinkt alsof je de verkeerde delimiter gebruikt. In je code gebruik je een ',', maar het bestand gebruikt blijkbaar ';' als delimiter.


Helemaal top, dat was'm! Ik kwam uit op 47, geen 36 haha. Hij werkt nu helemaal.

Thanks Eddy en Erwin!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.