Hulp bij het importeren van een csv bestand

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sunil Kisoensingh

Sunil Kisoensingh

19/05/2016 17:46:07
Quote Anchor link
Hoi,

Voor een schoolopdracht moet ik gebruikers kunnen importeren in een database d.m.v. een csv bestand.
Nou gebruiken ze op school csv bestanden die gescheiden worden door een , of een ;. Ik ben begonnen met een scriptje en het werkt opzich wel alleen treed er een klein probleempje op als het scheidingsteken een ; is. Dan word er nadat het lijstje is uitgelezen en in een array is opgeslagen een lege rij als laatste rij toegevoegd. Dit zorgt ervoor dat in de database dan een lege regel elke keer komt. Weet iemand waarom er een lege rij word toegevoegd bij ; maar niet bij ,?

Hieronder is het scriptje:

<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="csv" id="csv"><br>
<input type="radio" name="teken" value="ptka">punt komma<br>
<input type="radio" name="teken" value="ka">komma<br>
<input type="submit" name="submit">
</form>
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
//header ('Content-Type: text/plain');
//include ('../includes/header.php');

$conn = mysql_connect('localhost','root','');
mysql_select_db('test',$conn);

if (isset($_POST['submit'])){
    $file = $_FILES['csv']['tmp_name'];
    $handle = fopen($file,"r");
    $teken = $_POST['teken'];

    fgetcsv($handle);

    if ($teken == "ka") {
        while (($fileopen = fgetcsv($handle, 1000, ",")) !== false) {
            $voornaam = $fileopen['0'];
            $tv = $fileopen['1'];
            $achternaam = $fileopen['2'];
            $snr = $fileopen['3'];
            $email = $fileopen['4'];

            //$sql = mysql_query("insert into user(id,naam,tv,achternaam,snr,email) values (NULL,'$voornaam','$tv','$achternaam','$snr','$email')");
            print_r($fileopen);
        }
    }
elseif ($teken == "ptka"){
        //fgetcsv($handle);
        while (($fileopen = fgetcsv($handle, 1000, ",")) !== false){
                foreach ($fileopen as $line) {
                    $rows = explode(";", $line);

                    $voornaam = $rows['0'];
                    $tv = $rows['1'];
                    $achternaam = $rows['2'];
                    $snr = $rows['3'];
                    $email = $rows['4'];

                    //$sql = mysql_query("insert into user(id,naam,tv,achternaam,snr,email) values (NULL,'$voornaam','$tv','$achternaam','$snr','$email')");
                    print_r($rows);

                }
            }
        }



}


//include ('../includes/footer.php');
?>


Dit is het csv bestand met komma:

Naam,Tussenvoegsel,Achternaam,Studentennummer,Email
sunil,,kisoensingh,s1000765,[email protected]
naam,tussenvoegsel,achternaam,s007007,[email protected]


Dit is het csv bestand met punt komma:

Naam;Tussenvoegsel;Achternaam;Studentennummer;Email
sunil;;kisoensingh;s1092465;[email protected]
naam;tussenvoegsel;achternaam;s007007;[email protected]

Hopelijk kunnen jullie mij hiermee verder helpen. Alvast bedankt
Gewijzigd op 19/05/2016 17:47:05 door Sunil Kisoensingh
 
Er zijn nog geen reacties op dit bericht.



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.