Hoi!

Ik heb een database vol met opgeslagen namen, in het formaat achternaam, komma voornaam. Ik wil dit graag omdraaien en de komma verwijderen zodat het "voornaam achternaam" wordt. Ik heb echter geen kaas gegeten van regular expressions en met mijn probeersel kom ik er niet uit. Zou iemand mij hierbij willen helpen?

Groet,

Arthur
Hoi Adoptive Solution. Het is mijn bedoeling om de database inderdaad aan te passen. Daarom stel ik hier mijn vraag. Ik wil dit echter graag met PHP doen. Ik krijg namelijk telkens nieuwe data aangeleverd. Die nieuwe data gaat uiteindelijk ook een nieuwe database in en dan wil ik het ook goed opslaan, voor en achternaam gescheiden. Maar zover zijn ze nog niet. Voor nu moet ik even tevreden zijn met het mooi weergeven.

<?php
$naam = 'Jansen, Jan';
$naam = explode(',', $naam, 2);
$naam = trim($naam[1]) . ' ' . trim($naam[0]);

var_dump($naam);  // string(10) "Jan Jansen"
?>
Hoi Ward!

Heel erg bedankt! Dat was precies waar ik naar op zoek was. Blijkbaar geen regular expressions nodig.

Nogmaals bedankt!

Groetjes Arthur!

[size=xsmall]Toevoeging op 08/04/2017 13:39:19:[/size]

Ik heb echter nog een vraag aan je Ward. In je code staat de volgende regel:


$naam = explode(',', $naam, 2);


Waar staat die 2 voor?
Om toch even naar MySQL e gaan,

Dit is een table :

DROP TABLE IF EXISTS `guy`;
CREATE TABLE `guy` (
  `naam` varchar(50) NOT NULL,
  `voornaam` varchar(50) NOT NULL,
  `achternaam` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `guy` (`naam`, `voornaam`, `achternaam`) VALUES
('griffin, peter',	'',	''),
('Griffin, Lois	',	'',	''),
('Swanson, Joseph',	'',	''),
('Quagmire, Glenn',	'',	'');


Een MySQL Procedure splitst het naam veld en zet het in de aparte velden.

BEGIN
	update `guy` set voornaam = substring_index(naam,', ',-1);
	update `guy` set achternaam = substring_index(naam,', ',1);
END
Hoi Adaptive Solution,

Ik bewaar jouw oplossing ook even. Erg bedankt!
Arthur Nolles op 08/04/2017 13:35:47


[size=xsmall]Toevoeging op 08/04/2017 13:39:19:[/size]

Ik heb echter nog een vraag aan je Ward. In je code staat de volgende regel:


$naam = explode(',', $naam, 2);


Waar staat die 2 voor?

De limiet. Klik eens de functienaam in het codeblok. ;-)
Dat had ik gedaan, maar ik snap het nogsteeds niet.

[size=xsmall]Toevoeging op 08/04/2017 14:06:14:[/size]

Waarvoor is het limiet precies?
Het toont een maximaal aantal elementen waarop hij explode. Zie ook 'Example #3' op die pagina.
Die limit 2 heb je dus vooral nodig als er onverwacht tóch meer dan 1 komma in je naam-veld staat.

Reageren