Update query om voorvoegsels uit een achternaam veld te halen
Ik heb een tabel met daarin een kolom, achternaam.
In de kolom staat de volledige achternaam dus inclusief voorvoegsels. Deze voorvoegsels wil ik uit de kolom achternaam halen en verplaatsen naar de kolom voorvoegsel.
Ik heb onderstaande query gedraaid maar deze werkte niet goed, bij alle gevonden records werd de voorvoegsel en de achternaam van uit eerst gevonden record geplaatst, ik had dus opeens een heleboel mensen een andere achternaam gegeven ......... ;-)
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$query = "SELECT achternaam FROM client WHERE achternaam LIKE 'van der %'";
$result = mysqli_query($con,$query);
while($row = mysqli_fetch_array($result)) {
$voorvoegsel = strtolower(substr($row['achternaam'], 0, 7));
$achternaam_nieuw = substr($row['achternaam'], 8);
mysqli_query($con, "UPDATE client SET voorvoegsel = '" . $voorvoegsel . "', achternaam = '" . $achternaam_nieuw . "'WHERE achternaam LIKE 'van der %'");
}
?>
$query = "SELECT achternaam FROM client WHERE achternaam LIKE 'van der %'";
$result = mysqli_query($con,$query);
while($row = mysqli_fetch_array($result)) {
$voorvoegsel = strtolower(substr($row['achternaam'], 0, 7));
$achternaam_nieuw = substr($row['achternaam'], 8);
mysqli_query($con, "UPDATE client SET voorvoegsel = '" . $voorvoegsel . "', achternaam = '" . $achternaam_nieuw . "'WHERE achternaam LIKE 'van der %'");
}
?>
Iemand enig idee waar het fout gaat?
En hoe ik dit efficienter kan aanpakken als ik dit voor nog meer voorvoegsels wilt doen zoals van, van den, de etc. etc.
Met vriendelijke groeten,
Arie
Toevoeging op 14/03/2014 15:35:44:
Laat maar ............. ;-)
Zat gewoon ff te slapen, de WHERE conditie moest zijn WHERE ID = $row['ID']
Groeten,
Arie
- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Alvast bedankt!
Alvast bedankt!
Gewijzigd op 14/03/2014 16:08:05 door - Ariën -
De GBA telt 333 verschillende voorvoegsels, dus ik zou het anders oplossen.
Dat vermoeden had ik al (al heb ik ze niet 333 maar kom een aardig eind ......... ;-) ) maar de grote vraag is ......... hoe anders op te lossen?
Een tabel met alle voorvoegsels kun je ondertussen alvast hier downloaden:
http://www.bprbzk.nl/dsresource?objectid=16997&type=org
Hopelijk dat er een 'SQL goeroe' mij op weg kan helpen om dit een beetjew eeficient aan te pakken!
Groeten,
Arie