[PHP] INI > PHP array > MySQL convert

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Cyw00d
  • Registratie: Januari 2006
  • Laatst online: 11-09 13:04
Beste,

Ik ben op dit moment met array's aan het stoeien, ik heb een ini bestand die ik inlees en dat wordt dus uiteindelijk een array. Echter weet ik niet hoe je een array in een keer kan uitlezen zodat je hem in een database kan plakken aangezien de waardes van de array telkens anders zijn (ze beginnen bij 000 en eindigen bij 250).

Een voorbeeld van hoe de array eruit ziet:

code:
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
Array
(
    [000] => Array
        (
            [V010] => V
            [V020] => 3SYCBQ0090374XX
            [V035] => 000000000000000000000000000209373XX
            [V040] => 3SYCBQ0090374XX
            [V060] => I
            [V070] => 01
            [V080] => 201004XX
            [V081] => 111XXX
            [V090] => 109XXX
            [V091] => Pakkettendistributie
            [V110] => 675
            [V120] => 8277
            [V140] => PARTICULIER ELS XXXX
            [V150] => XX
            [V160] => 4725XX
            [V170] => PLANTAGEBAAN
            [V180] => WOUWSE PLANTAGE
            [V200] => NL
        )

    [001] => Array
        (
            [V010] => V
            [V020] => 3SYCBQ0090374XX
            [V035] => 000000000000000000000000000209375XX
            [V040] => 3SYCBQ0090374XX
            [V060] => K
            [V070] => 70
            [V080] => 201004XX
            [V081] => 135XXX
            [V090] => 111XXX
            [V091] => Pakkettendistributie
            [V100] => 114XXX
            [V110] => 1000
            [V120] => 8573
            [V140] => PARTICULIER XXXX XXXX
            [V150] => XX
            [V160] => 7141XX
            [V170] => HET BLIK
            [V180] => GROENLO
            [V200] => NL
        )
}


Hoe kan ik ervoor zorgen dat hij de array zo uitleest zodat het in een database kan worden gezet. Ik ga er vanuit dat dit heel simpel moet kunnen en ik waarschijnlijk veel te moeilijk denk. :o

[ Tesla MIG MYP ]


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

hangt een beetje af van je database-ontwerp

Acties:
  • 0 Henk 'm!

Verwijderd

Tabel maken en een for(each) loop met (parameterized) queries op je database afschieten? Of denk ik te simpel? :)

Acties:
  • 0 Henk 'm!

  • haneev
  • Registratie: November 2005
  • Laatst online: 16-09 15:52
Voorbeeldje:

PHP:
1
2
3
4
5
<?PHP
foreach($jeArray as $key => $pakket) {
 $sql = "INSERT INTO tabel (".$pakket['V010'].','.$pakket['V200'].')'; // Enz.... 
}
?>

[ Voor 7% gewijzigd door haneev op 23-04-2010 12:02 ]


Acties:
  • 0 Henk 'm!

  • DrFlash
  • Registratie: Juli 2009
  • Laatst online: 05-03 12:59
edit, antwoord stond er al

[ Voor 88% gewijzigd door DrFlash op 23-04-2010 12:02 ]

Wowhead profiel


Acties:
  • 0 Henk 'm!

  • Cyw00d
  • Registratie: Januari 2006
  • Laatst online: 11-09 13:04
haneev schreef op vrijdag 23 april 2010 @ 12:01:
Voorbeeldje:

PHP:
1
2
3
4
5
<?PHP
foreach($jeArray as $key => $pakket) {
 $sql = "INSERT INTO tabel (".$pakket['V010'].','.$pakket['V200'].')'; // Enz.... 
}
?>
Ik heb hem inmiddels gevonden, het werkt met een foreach in een foreach. Aangezien het een array in een array is.

foreach($array as $key =>$value){
// $value is nu de array in de array, dus 000 tot bv 250
// Die array wil je ook wil in waardes:
foreach($value as $innerKey => $innerValue){
echo $innerValue; //de waarde van de array in de array
}
echo"<br />"; //deze voor het voorbeeld zodat er steeds een nieuwe regel komt
}

Bedankt! :)

[ Tesla MIG MYP ]


Acties:
  • 0 Henk 'm!

  • Luqq
  • Registratie: Juni 2005
  • Laatst online: 08:11
Serialize?

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Nu online

MueR

Admin Tweakers Discord

is niet lief

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • eelkevdbos
  • Registratie: Augustus 2007
  • Laatst online: 10-03 14:08
Cyw00d schreef op vrijdag 23 april 2010 @ 12:58:
[...]

Ik heb hem inmiddels gevonden, het werkt met een foreach in een foreach. Aangezien het een array in een array is.

foreach($array as $key =>$value){
// $value is nu de array in de array, dus 000 tot bv 250
// Die array wil je ook wil in waardes:
foreach($value as $innerKey => $innerValue){
echo $innerValue; //de waarde van de array in de array
}
echo"<br />"; //deze voor het voorbeeld zodat er steeds een nieuwe regel komt
}

Bedankt! :)
Beste TS,

Ik zou toch gaan voor een for loop i.c.m. een foreach aangezien je eerste array er uitziet als een 'non-associative' array. De suggestie om de data te serializen lijkt me ook een zeer mooie optie.

PHP:
1
2
3
4
5
6
<?php
for($i = 0; $i < count($i); $i++) {
    foreach(....)
        //sql statement
}
?>

Acties:
  • 0 Henk 'm!

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 18-09 20:31
eelkevdbos schreef op vrijdag 23 april 2010 @ 15:28:
[...]


Beste TS,

Ik zou toch gaan voor een for loop i.c.m. een foreach aangezien je eerste array er uitziet als een 'non-associative' array. De suggestie om de data te serializen lijkt me ook een zeer mooie optie.

PHP:
1
2
3
4
5
6
<?php
for($i = 0; $i < count($i); $i++) {
    foreach(....)
        //sql statement
}
?>
Er is niets mis met het gebruik van foreach op een non-associative array. Het kan met een for-loop, maar dat is zeker niet per se de beste of slechtste optie; het is een kwestie van persoonlijke voorkeur.

Daarnaast werkt jouw voorbeeld niet. Je bedoelt waarschijnlijk count( $array ) in plaats van count( $i ). De functie count() benodigd als eerste argument een array of object, geen integer. Het is ook weinig zinvol om informatie op te vragen over een iterator die je zojuist hebt geïnitieerd.

Ik zie in dit geval ook niet zo het nut van serializen. Als ik de topicstart goed lees, dan wil de topicstarter een datamodel waarbij iedere waarde uit het bronbestand een rij inneemt in de database. Als je informatie uit een ini-bestand inleest, en de resulterende array vervolgens geserialized in een string in een database opslaat, dan had je het wat mij betreft net zo goed in het bestand kunnen laten staan. Het hele nut van een database is in dit geval dat de data gemakkelijk bereikbaar, doorzoekbaar en aanpasbaar wordt. Een serialized array is dat niet.

[ Voor 21% gewijzigd door doeternietoe op 23-04-2010 19:33 ]

Pagina: 1