CSV naar DB en veranderen van waarden.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Task b

task b

12/07/2010 09:18:06
Quote Anchor link
Hey mensen ik heb een vraag. Ik heb op dit moment een csv bestand die er ongeveer zo uit ziet:

18,12, 3, 9, 7, 40, 33, 22, 9, 8
18,3, 3, 8, 9, 31, 53, 11, 10, 15
18,9, 6, 12, 9, 50, 53, 11, 15, 3

Wat ik nu wil is importeren naar de database en bepaalde waarde kunnen vervangen. Mijn probleem is nu dat dit in principe helemaal werkt MET UITZONDERING van de laatste kolom. Als ik bijvoorbeeld 8 wil vervangen voor 12 dan zal dit helemaal goed gebeuren behalve bij de laatste kolom wil hij het niet vervangen.

stukje code (nniet 100% compleet maar dat is ook niet nodig denk ik dan :P)
ik begin steeds met 1 regel inlezen en deze omzetten naar array op deze manier
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$eenArray
= explode(",", $regelnummer);
//vervolges ga ik deze array doorzoeken
 foreach ($eenArray as $key => $value) {
          
            //echo "key is: ".$key." value is: -".$value."-";
            //print_r($eenArray);

            $deKey = array_search('8', $eenArray);
            if ($deKey != false) {
              $eenArray[$deKey] = $nieuweWaarde;
            }

?>


In principe werkt het script helemaal goed alleen zoals eerder gezegd in de laatste kolom wil hij NIKS vervangen. Iemand enige ideen? Alvast bedankt.
 
PHP hulp

PHP hulp

22/12/2024 18:43:20
 
- Mark -

- Mark -

12/07/2010 09:38:26
Quote Anchor link
Zou gewoon moeten werken. vraag, wanneer hij het niet wil vervangen. krijg je dan een lege waarde of blijft hij gewoon de waarde houden die hij al had?
 
Task b

task b

12/07/2010 10:03:43
Quote Anchor link
Hij blijft simpelweg de waarde houden die hij al had. Voor alle kolommen werkt het perfect alleen de laatste :S. Ik zat zelf te denken dat er misschien iets als \n aan het einde van de lijn staat en heb dus geprobeerd het te doen met

$deKey = array_search("8\n", $eenArray);

maar helaas nog geen resultaat :S
 
- SanThe -

- SanThe -

12/07/2010 14:17:27
Quote Anchor link
Volgens mij moet het zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$eenArray
= explode(",", $regelnummer);
//vervolges ga ik deze array doorzoeken
foreach ($eenArray as $key => $value)
{

    if ($value == 8)
    {

         $eenArray[$key] = $nieuweWaarde;
    }
}

?>
Gewijzigd op 12/07/2010 14:20:18 door - SanThe -
 
Joren de Wit

Joren de Wit

12/07/2010 14:18:52
Quote Anchor link
@SanThe: alleen van $deKey nog even $key maken ;-)
 
- SanThe -

- SanThe -

12/07/2010 14:20:46
Quote Anchor link
Done.
 
Johan Dam

Johan Dam

12/07/2010 14:21:58
Quote Anchor link
als je hem explode op een komma, dan zal de laatste en de eerste van de volgende samen komen omdat daar geen komma tussen staat,

de
'8'
word dan
'8
18'

explode anders eerst op een '\n' en daarna op een ','
 
Joren de Wit

Joren de Wit

12/07/2010 14:34:49
Quote Anchor link
Nog slimmer: lees je csv in met behulp van file(), als je dat niet al deed...
 
Task b

task b

12/07/2010 16:55:20
Quote Anchor link
Zal deze dingen proberen zodra ik weer thuis ben, alvast bedankt en hopelijk lukt het :)
 



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.