CSV > SQL <!--
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
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 Loran DP
en wat heb je zelf al gedaan?
Niks, ik wil graag weten hoe ik een CSV kan omzetten naar SQL
Je kunt de CSV file inlezen in PHP en er alles mee doen wat je wilt. Functies die je wellicht wilt gebruiken: file, fgetcsv.
Ik krijg nu deze error:
met deze code
Quote:
The file '/Applications/MAMP/tmp/php/phpwIdatK' must be in the database directory or be readable by all
met deze code
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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>';
}
?>
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 Loran DP
Bestand eerst opslaan en chmodden naar 777. Lijkt me...
Gewijzigd op 21/06/2010 00:14:34 door Piet Verhagen
Of anders het bestand in PHP uitlezen en daar de benodigde INSERT query opbouwen en uitvoeren...
Ik heb nu dit:
Alleen ik krijg nu deze error: Can't get stat of '/Applications/MAMP/db/mysql/csv_temp/' (Errcode: 2)
Code (php)
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
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;
}
?>
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 Loran DP




