Versio

CSV > SQL <!--

Overzicht Reageren

ILoran punt NL

iLoran punt NL

20/06/2010 22:47:02
Quote Anchor link
Goede avond,

Ik heb een vraagje.
Hoe kan ik als ik een CSV bestand upload hem direct omzetten naar SQL?

Dus even heel kort: csv upload > output = sql

bvd,
Loran
Gewijzigd op 22/06/2010 14:10:18 door ILoran punt NL
 
PHP hulp

PHP hulp

24/05/2012 08:32:17
Gesponsorde koppelingen:
 
Terence Hersbach

Terence Hersbach

20/06/2010 22:49:00
Quote Anchor link
en wat heb je zelf al gedaan?
 
ILoran punt NL

iLoran punt NL

20/06/2010 22:50:43
Quote Anchor link
Niks, ik wil graag weten hoe ik een CSV kan omzetten naar SQL
 
Joren de Wit
Beheerder

Joren de Wit

20/06/2010 22:53:25
Quote Anchor link
Je kunt de CSV file inlezen in PHP en er alles mee doen wat je wilt. Functies die je wellicht wilt gebruiken: file, fgetcsv.
 
ILoran punt NL

iLoran punt NL

20/06/2010 23:18:25
Quote Anchor link
Ik krijg nu deze error:
Quote:
The file '/Applications/MAMP/tmp/php/phpwIdatK' must be in the database directory or be readable by all


met deze code

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
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

$mysql_account = mysql_connect('localhost','root','root') or die('Er kon geenverbinding met een database worden gemaakt.' );
mysql_select_db('oc', $mysql_account) or die('Kon database niet selecteren.');

$sqlstatement="LOAD DATA INFILE '".$_FILES['filen']['tmp_name']."' into TABLE payments FIELDS TERMINATED BY ',' (clubnr,naam,email,bedrag,omschrijving,betaald)" ;
mysql_query($sqlstatement) or die(mysql_error());;
echo "it is done!";
}

else
{
echo '<form action="" method="post" enctype="multipart/form-data">';
echo 'File: <input type="file" name="filen" /> <input type="submit" name="subform" value="Upload File!" />';
echo '</form>';
}

?>
Gewijzigd op 20/06/2010 23:31:24 door iLoran punt NL
 
Piet Verhagen

Piet Verhagen

21/06/2010 00:14:21
Quote Anchor link
Bestand eerst opslaan en chmodden naar 777. Lijkt me...
Gewijzigd op 21/06/2010 00:14:34 door Piet Verhagen
 
Joren de Wit
Beheerder

Joren de Wit

21/06/2010 11:05:31
Quote Anchor link
Of anders het bestand in PHP uitlezen en daar de benodigde INSERT query opbouwen en uitvoeren...
 
ILoran punt NL

iLoran punt NL

22/06/2010 13:33:01
Quote Anchor link
Ik heb nu dit:

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
switch($_GET['step'])
{
    default:

    ///
        $extensions = array('csv');
        $tfolder = "csv_temp/";
        $scriptloc = "";
        $maxfsize = 150;
        
        if($_SERVER['REQUEST_METHOD'] == "POST") {
        $fname = $_FILES['filen']['name'];
        $fext = strtolower(end(explode('.', $fname)));
        $ftemp = $_FILES['filen']['tmp_name'];
        $newname = md5(rand(rand(1, 9999), rand(1, 9999))) . "." . $fext;
        $target = $tfolder . $newname;
        
        if(!empty($fname)) {
        foreach($extensions as $check) {
        if($check == $fext) {
        $extensioncheck = true;
        }
        }

        if($extensioncheck == true) {
        if(filesize($ftemp) > $maxfsize * (1024*1024)) {
        echo '<p><font color="red">Uw bestand is groter dan 15 MB</font></p>';
        }

        else {
        if(!strstr(strtolower($fname), "php")) {
        $upload = move_uploaded_file($ftemp, $target);
        if($upload) {
        $_SESSION['csv_temp'] = $newname;
        echo "<p>Uw CSV bestand is geupload naar onze server.<br /><br /><br />";
        echo '<input class="SubmitBold" type="button" value="Stap 2" onclick="javascript:window.location=\'index.php?step=2  \'"/>';
        $succes = true;
        }

        else {
        echo '<p><font color="red">Er is helaas een fout opgetreden. Probeer het bestand nogmaals te uploaden.</font>
        <br />Mocht u deze fout meerdere keren krijgen neem dan contact met ons op.</p><br /><br />'
;
        }
        }

        else {
        echo '<p><font color="red">Er is helaas een fout opgetreden. Probeer het bestand nogmaals te uploaden.</font>
        <br />Mocht u deze fout meerdere keren krijgen neem dan contact met ons op.</p><br /><br />'
;
        }
        }
        }

        else {
        echo '<p><font color="red">U heeft geen CSV bestand geupload.</font>
        <br />Mocht u deze fout meerdere keren krijgen neem dan contact met ons op.</p><br /><br />'
;
        }
        }

        else {
        echo '<p><font color="red">U heeft geen bestand opgegeven om te uploaden.</font></p>';
        }
        
        }

        if($succes !== true) {
        echo'
        <form action="" method="post" enctype="multipart/form-data">
        <div class="blauw" style="width:345px; margin-left:5px"><input type="file" name="filen"/></div>
        <input type="submit" name="subform" value="Upload CSV bestand" class="SubmitBold" style="margin-left:5px;"/>
        <!--<div class="progress-bar">
        <div class="progress-bar-bg"></div>
        <div class="progress-bar-text">0%</div>
        </div>-->
        </form>'
;
        }

    ///
    break;
    case
'2':
    ///
        $sqlstatement="LOAD DATA INFILE 'csv_temp/".$_SESSION['csv_temp']."' into TABLE payments FIELDS TERMINATED BY ',' (clubnr,naam,email,bedrag,omschrijving)" ;
        mysql_query($sqlstatement) or die(mysql_error());;
        echo "it is done!";
    break;
}

?>


Alleen ik krijg nu deze error: Can't get stat of '/Applications/MAMP/db/mysql/csv_temp/' (Errcode: 2)
Gewijzigd op 22/06/2010 13:33:19 door iLoran punt NL
 



Overzicht Reageren