csv replace
Lees $data[3] uit vanaf een .csv bestand nu zal deze een '1' of '2' bevatten.
Nu wil ik dat hij deze omzet in geval van '1' naar 'Ja' en in geval van '2' naar 'Nee'. Hoe doe ik dit?
Code die ik nu gebruik is:
dit topic? Waarom begin je hier een nieuw topic over?
Daarnaast, deze vraagstelling is op zichzelf een beetje vaag.
Anyway, twee dingen die ik niet begrijp:
#1 Zoals in je oorspronkelijke topic staat heb je een CSV, en een database waarin je uiteindelijk weer dingen update. Niet toevoegt (importeert), maar update. Waarom heb je dan een CSV als tussenstap nodig? Waarom schrijf je niet direct een conversie-script? En als je InnoDB-database tabellen (had) gebruikt kun je eerst een echte "dry run" doen met de uiteindelijke UPDATE queries zonder dat er iets in je database verandert door middel van een transactie.
#2 Het code-fragment in bovenstaand bericht, in welke taal wil je dit schrijven? PHP? Daarnaast, als je maar twee waarden hebt, waarom maak je daar dan geen boolean van (true of false, numeriek voorgesteld door respectievelijk 1 en 0)? Ik hoop niet dat je ook vervolgens "Ja" en "Nee" in je database wilt wegschrijven? Ook daar zou ik een BOOL (of TINYINT) gebruiken.
Is dit een voortzetting van Daarnaast, deze vraagstelling is op zichzelf een beetje vaag.
Anyway, twee dingen die ik niet begrijp:
#1 Zoals in je oorspronkelijke topic staat heb je een CSV, en een database waarin je uiteindelijk weer dingen update. Niet toevoegt (importeert), maar update. Waarom heb je dan een CSV als tussenstap nodig? Waarom schrijf je niet direct een conversie-script? En als je InnoDB-database tabellen (had) gebruikt kun je eerst een echte "dry run" doen met de uiteindelijke UPDATE queries zonder dat er iets in je database verandert door middel van een transactie.
#2 Het code-fragment in bovenstaand bericht, in welke taal wil je dit schrijven? PHP? Daarnaast, als je maar twee waarden hebt, waarom maak je daar dan geen boolean van (true of false, numeriek voorgesteld door respectievelijk 1 en 0)? Ik hoop niet dat je ook vervolgens "Ja" en "Nee" in je database wilt wegschrijven? Ook daar zou ik een BOOL (of TINYINT) gebruiken.
#1 De csv wordt aangeleverd door een andere partij. Deze is dus nogal aan verandering onderhevig. En het is de bedoeling dat meerdere mensen hier gebruik van gaan maken dus vandaar geen conversie-script. Maar bedankt voor de tips! Misschien doe ik dit in de toekomst wel anders.
#2 Ja, klopt in PHP. "1" en "0" uit de csv dienen inderdaad in de db UPDATE weggeschreven te worden als "Ja" en "Nee" :)
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
//buiten de foreach
$yes_no = array('0' => 'Nee', '1' => 'Ja');
//in de foreach
$sql = "UPDATE tabelnaam SET datumveld = STR_TO_DATE('" . $data[1] .
"','%d/%m/%Y'), check = '" . $yes_no[$data[3]] . "'";
[/code]
//buiten de foreach
$yes_no = array('0' => 'Nee', '1' => 'Ja');
//in de foreach
$sql = "UPDATE tabelnaam SET datumveld = STR_TO_DATE('" . $data[1] .
"','%d/%m/%Y'), check = '" . $yes_no[$data[3]] . "'";
[/code]
(vanaf:
of als het om een datum omvorming gaat: