Gå til innhold

Få personer med mellomnavn i bare to navnefelt


Gjest Slettet+98128394

Anbefalte innlegg

Gjest Slettet+98128394

Hei, har en mysql-database med feltene fornavn og etternavn. Navnene hentes fra en fil hvor hele navnet står i et felt. Jeg vil splitte fornavn og etternavn fra fila, og lagre i databasen. Det går greit så lenge personen bare har et fornavn og et etternavn, men når mange personer både har et ekstra fornavn og et ekstra etternavn, blir det verre.

 

Har til nå brukt explode og delt på mellomrom:

$navn = explode(" ", $rad);

 

Dette funker når personen bare har to navn.

 

At en person kan ha et fornavn og to etternavn, mens en annen person kan ha to fornavn og et etternavn, gjør det vanskelig å vite hvordan man skal få scriptet til å dele det inn riktig.

 

Noen forslag på en smart løsning?

Lenke til kommentar
Videoannonse
Annonse

Har ingen løsning, men én ting vet jeg, og det er at en person har bare ett etternavn. I navnet Knut Andreas Johnsen Knausgård, vil Knausgård være etternavn, mens de resterende navnene er å regne for fornavn.

Endret av masb
Lenke til kommentar

Litt helt enkel utestet kode her full fart før jeg lager meg middag:

$allNames = 'Brille Brillert Brillesen';
$allNames = explode(' ', $allNames);
if (count($allNames) < 2) {
throw new WTFBoyGotOnlyOneNameException2k();
}
$familyName = array_pop($allNames);
$givenName = implode(' ', $allNames);

Dette krever dog at etternavn skrives sist, flere land her i verden skriver etternavn først, og derfor burde du egentlig gi denne oppgaven til bruker i stedet for å prøve å automatisere det.

 

EDIT: Forklaring: Først gjør jeg listen om til en que, så popper jeg siste (FIFO) element fra køen og trunkerer de eksisterende elementene tilbake til en liste.

Endret av JohndoeMAKT
Lenke til kommentar
Gjest Slettet+98128394

Takk for gode tips. Da får jeg forsøke å holde meg til et etternavn og resten av navnene lagres som fornavn.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...