upload csv, string schrijven naar mysql

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bart nukem

bart nukem

10/12/2008 13:50:00
Quote Anchor link
Wie kan me helpen, kom niet verder. Ik wil een csv bestand uploaden, strippen en wegschrijven in mysql. Bestand is ; gescheiden maar sommige velden zoals datum en tijd moeten worden gestript (explode). Tot zover kan ik het csv bestand uploaden en wegzetten in de dir uploads en uitlezen in een string... en dan kom ik dus niet verder. Hier een stukje relevante code
[if(!isset($_POST['option'])){
echo $page;
}
elseif($_POST['option'] == "yes"){
$sql = 'TRUNCATE TABLE `veolia`';
$resultaat = mysql_query($sql);
$uploaddir = './uploads/';
$uploadfile = $uploaddir . $_FILES['csvfile']['name'];
if (move_uploaded_file($_FILES['csvfile']['tmp_name'], $uploadfile)) {
print "<font face='arial'>Succesvol geupload. ";

$notice = 1;
chmod($uploadfile, 0777);

} else {
print "<font face='arial'>ERROR: Upload Fout. ";
$notice = 0;
}
$notice = 1;
if ($notice == 1) {
echo "\n sending Data...";
flush();
echo "</font>";
if (file_exists($uploadfile)) {
$fp = fopen($uploadfile, 'r') or die (" Cannot open the file");
$row = 1;
$handle = $fp;
while (($data = fgetcsv($handle, 10240, ";")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c = 0; $c < $num; $c = $c + 1) {

$data[$c] = str_replace(',', ' ', $data[$c]);

$data[$c] = str_replace(' ', ';', $data[$c]);

$str = $data[$c];

print_r(explode(';', $str));

}
}
fclose($handle);]

dit is het resultaat:

9 fields in line 33:


Array ( [0] => LO ) Array ( [0] => 1-11-2008 [1] => 7:38 ) Array ( [0] => GPS [1] => 1 [2] => 00:00:00 [3] => X:0 [4] => Y:0 ) Array ( [0] => 166 ) Array ( [0] => ) Array ( [0] => ) Array ( [0] => ) Array ( [0] => ) Array ( [0] => )

hoe kan ik deze string wegschrijven naar mysql, alvast enorm bedankt!
 
PHP hulp

PHP hulp

21/11/2024 21:30:29
 
Jesper Diovo

Jesper Diovo

10/12/2008 15:12:00
Quote Anchor link
Sinds wanneer is een array een string?
 
Dennis Mertens

Dennis Mertens

10/12/2008 15:18:00
Quote Anchor link
Wil je je code tussen [code][/code] zetten?

En een array is geen string maar een array :)

In een array kan een string staan etc.

En wil je even je print_r anders gebruiken?

Op deze manier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
echo '<pre>';
print_r(explode(';', $str));
echo '</pre>';
?>

En dan posten. Wat beter te lezen etc.
Gewijzigd op 01/01/1970 01:00:00 door Dennis Mertens
 
Bart nukem

bart nukem

10/12/2008 15:24:00
Quote Anchor link
Jezpur schreef op 10.12.2008 15:12:
Sinds wanneer is een array een string?


ok maar hoe krijg ik die array dan in een database?
 
Jesper Diovo

Jesper Diovo

10/12/2008 15:29:00
Quote Anchor link
Ligt eraan hoe jij het wilt hebben. Hoe ziet je datamodel eruit? Welke gegevens moeten in welk veld?
 
Bart nukem

bart nukem

10/12/2008 15:33:00
Quote Anchor link
Jezpur schreef op 10.12.2008 15:29:
Ligt eraan hoe jij het wilt hebben. Hoe ziet je datamodel eruit? Welke gegevens moeten in welk veld?


elke afzonderlijk veld kan opgeslagen worden in code1,code2,code3 enz enz
 
Bart nukem

bart nukem

10/12/2008 15:51:00
Quote Anchor link
Dennis Mertens schreef op 10.12.2008 15:18:
Wil je je code tussen [code][/code] zetten?

En een array is geen string maar een array :)

In een array kan een string staan etc.

En wil je even je print_r anders gebruiken?

Op deze manier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
echo '<pre>';
print_r(explode(';', $str));
echo '</pre>';
?>

En dan posten. Wat beter te lezen etc.[/quote]

alle begin is moeilijk...

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
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
if(!isset($_POST['option'])){
            echo $page;
        }
        elseif($_POST['option'] == "yes"){
        $sql = 'TRUNCATE TABLE `veolia`';
        $resultaat = mysql_query($sql);
        $uploaddir = './uploads/';
        $uploadfile = $uploaddir . $_FILES['csvfile']['name'];
        if (move_uploaded_file($_FILES['csvfile']['tmp_name'], $uploadfile)) {
        print "<font face='arial'>Succesvol geupload. ";
        
        $notice = 1;
        chmod($uploadfile, 0777);
        
        } else {
        print "<font face='arial'>ERROR: Upload Fout. ";
        $notice = 0;
        }
        $notice = 1;
        if ($notice == 1) {
        echo "\n sending Data...";
        flush();
        echo "</font>";
        if (file_exists($uploadfile)) {
        $fp = fopen($uploadfile, 'r') or die (" Cannot open the file");
        $row = 1;
        $handle = $fp;
        while (($data = fgetcsv($handle, 10240, ";")) !== FALSE) {
        $num = count($data);
        
          echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
        for ($c = 0; $c < $num; $c = $c + 1) {
 
$data[$c] = str_replace(',', ' ', $data[$c]);

$data[$c] = str_replace(' ', ';', $data[$c]);

    $str = $data[$c];

echo '<pre>';
print_r(explode(';', $str));
echo '</pre>';



    }
}
fclose($handle);


hoe haal ik nu de info uit de array om deze weg te schrijven?
 
Dennis Mertens

Dennis Mertens

10/12/2008 15:56:00
Quote Anchor link
Wil je de output van de code in mijn vorige reactie even hier posten.

Dan zien wij de array veel overzichtelijker :)

Dank u.
 
Bart nukem

bart nukem

10/12/2008 16:01:00
Quote Anchor link
Dennis Mertens schreef op 10.12.2008 15:56:
Wil je de output van de code in mijn vorige reactie even hier posten.

Dan zien wij de array veel overzichtelijker :)

Dank u.



9 fields in line 1:


Array
(
[0] => BH
)

Array
(
[0] => 31-10-2008
[1] => 22:41
)

Array
(
[0] => GPS
[1] => 1
[2] => 00:00:00
[3] => X:0
[4] => Y:0
)

Array
(
[0] => 0
)

Array
(
[0] => 0.00
)

Array
(
[0] => 0.00
)

Array
(
[0] => 26
)

Array
(
[0] => 0
[1] => 0
[2] => "NL
[3] => KPN"
)

Array
(
[0] => 0.12000
)

9 fields in line 2:


enz enz
 
Dennis Mertens

Dennis Mertens

10/12/2008 16:09:00
Quote Anchor link
De array is eigenaardig opgebouwd. Wat is wat?

Even netjes gemaakt:
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
<?php

if(!isset($_POST['option']))
{

    echo $page;
}

elseif($_POST['option'] == "yes")
{

    $sql = 'TRUNCATE TABLE `veolia`';
    $resultaat = mysql_query($sql);
    $uploaddir = './uploads/';
    $uploadfile = $uploaddir . $_FILES['csvfile']['name'];
    if (move_uploaded_file($_FILES['csvfile']['tmp_name'], $uploadfile))
    {

        print "<font face='arial'>Succesvol geupload. ";
        
        $notice = 1;
        chmod($uploadfile, 0777);
    }

    else
    {
        print "<font face='arial'>ERROR: Upload Fout. ";
        $notice = 0;
    }

    $notice = 1;
    if($notice == 1)
    {

        echo "\n sending Data...";
        flush();
        echo "</font>";
        if (file_exists($uploadfile))
        {

            $fp = fopen($uploadfile, 'r') or die (" Cannot open the file");
            $row = 1;
            $handle = $fp;
            while (($data = fgetcsv($handle, 10240, ";")) !== FALSE)
            {

                $num = count($data);
    
                echo "<p> ".$num." fields in line ".$row.": <br /></p>\n";
                $row++;
                for ($c = 0; $c < $num; $c = $c + 1)
                {

    
                    $data[$c] = str_replace(',', ' ', $data[$c]);
                    $data[$c] = str_replace(' ', ';', $data[$c]);
                    $str = $data[$c];

                    echo '<pre>';
                    print_r(explode(';', $str));
                    echo '</pre>';

                }
            }

            fclose($handle);
        }
    }
}

?>


Snap er nog steeds niet heel veel van :p

Wat je sowieso beter kan doen is:
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
<?php

if(!isset($_POST['option']))
{

    echo $page;
}

elseif($_POST['option'] == "yes")
{

    $sql = 'TRUNCATE TABLE `veolia`';
    $resultaat = mysql_query($sql);
    $uploaddir = './uploads/';
    $uploadfile = $uploaddir . $_FILES['csvfile']['name'];
    if (move_uploaded_file($_FILES['csvfile']['tmp_name'], $uploadfile))
    {

        print "<font face='arial'>Succesvol geupload. ";
        
        $notice = 1;
        chmod($uploadfile, 0777);
    }

    else
    {
        print "<font face='arial'>ERROR: Upload Fout. ";
        $notice = 0;
    }

    $strdata = array();
    $notice = 1;
    if($notice == 1)
    {

        echo "\n sending Data...";
        flush();
        echo "</font>";
        if (file_exists($uploadfile))
        {

            $fp = fopen($uploadfile, 'r') or die (" Cannot open the file");
            $row = 1;
            $handle = $fp;
            while (($data = fgetcsv($handle, 10240, ";")) !== FALSE)
            {

                $num = count($data);
    
                echo "<p> ".$num." fields in line ".$row.": <br /></p>\n";
                $row++;
                for ($c = 0; $c < $num; $c = $c + 1)
                {

    
                    $data[$c] = str_replace(',', ' ', $data[$c]);
                    $data[$c] = str_replace(' ', ';', $data[$c]);
                    $str = $data[$c];

                    $strdata[] = explode(';', $str));

                }
            }

            fclose($handle);
        }
    }

    echo '<pre>';
    print_r($strdata);
    echo '</pre>';
}

?>
 
Bart nukem

bart nukem

10/12/2008 16:18:00
Quote Anchor link
en hoe kan ik dan het onderstaande resultaat wegschrijven in mysql?

9 fields in line 1:


Array
(
[0] => BH
)

Array
(
[0] => 31-10-2008
[1] => 22:41
)

Array
(
[0] => GPS
[1] => 1
[2] => 00:00:00
[3] => X:0
[4] => Y:0
)

Array
(
[0] => 0
)

Array
(
[0] => 0.00
)

Array
(
[0] => 0.00
)

Array
(
[0] => 26
)

Array
(
[0] => 0
[1] => 0
[2] => "NL
[3] => KPN"
)

Array
(
[0] => 0.12000
)
 
--

--

10/12/2008 16:21:00
 
Dennis Mertens

Dennis Mertens

10/12/2008 16:23:00
Quote Anchor link
Je moet hem aller eerst in een variabele zetten. Het zij een normale array, het zij een string.
 
Bart nukem

bart nukem

10/12/2008 16:27:00
Quote Anchor link
Dennis Mertens schreef op 10.12.2008 16:23:
Je moet hem aller eerst in een variabele zetten. Het zij een normale array, het zij een string.


normale array? heb je voor mij een voorbeeld?
 
Dennis Mertens

Dennis Mertens

10/12/2008 16:28:00
Quote Anchor link
Ja ik heb in mijn reactie van 16:09 een voorbeeld gezet.

De 2de code blok.
 
Bart nukem

bart nukem

10/12/2008 16:31:00
Quote Anchor link
Dennis Mertens schreef op 10.12.2008 16:28:
Ja ik heb in mijn reactie van 16:09 een voorbeeld gezet.

De 2de code blok.


daar kreeg ik een error, heb het eerste code blok overgenomen, ga het nog een keer proberen
 
Bart nukem

bart nukem

10/12/2008 16:35:00
Quote Anchor link
$strdata[] = explode(';', $str));

klopt dit wel ik daar een parse error uit blok 2
 
Bart nukem

bart nukem

10/12/2008 16:42:00
Quote Anchor link
dukenukem schreef op 10.12.2008 16:35:
$strdata[] = explode(';', $str));

klopt dit wel ik daar een parse error uit blok 2


1 sluithaakje teveel moet zeker zijn $strdata[ ] = explode(';', $str);

met het volgende resultaat:
9 fields in line 1:


9 fields in line 2:


9 fields in line 3:


9 fields in line 4:


9 fields in line 5:


9 fields in line 6:


9 fields in line 7:


9 fields in line 8:


9 fields in line 9:


9 fields in line 10:


9 fields in line 11:


9 fields in line 12:


9 fields in line 13:


9 fields in line 14:


9 fields in line 15:


9 fields in line 16:


enz enz
 
Bart nukem

bart nukem

10/12/2008 16:48:00
Quote Anchor link
sorry er was nog meer resultaat..

Array
(
[0] => Array
(
[0] => BH
)

[1] => Array
(
[0] => 31-10-2008
[1] => 22:41
)

[2] => Array
(
[0] => GPS
[1] => 1
[2] => 00:00:00
[3] => X:0
[4] => Y:0
)

[3] => Array
(
[0] => 0
)

[4] => Array
(
[0] => 0.00
)

[5] => Array
(
[0] => 0.00
)

[6] => Array
(
[0] => 26
)
 



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.