|
| Finde første ord i sætning Fra : Kasper Lund |
Dato : 12-02-08 11:54 |
|
Hej med jer.
Jeg har en database med en masse navne: "fornavn efternavn"
Hvordan får jeg fat i fornavnet? (altså ikke hvordan jeg henter fra
databasen, men hvordan jeg med php finder det første ord i en sætning)
Altså f.eks. Kasper Lund
Jeg vil kun have Kasper
Mvh.
/Kasper
| |
Bertel Lund Hansen (12-02-2008)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 12-02-08 12:00 |
|
Kasper Lund skrev:
> Jeg har en database med en masse navne:
> Hvordan får jeg fat i fornavnet?
$name="fornavn efternavn";
list($firstname)=explode(' ',$name);
eller
list($firstname,$lastname)=explode(' ',$name);
list() er en pseudokommando der kan bruges til at proppe data i
mange variable på én gang. Opskriften er
list(-variable-)=array(-data-);
Hvis der er færre variable end data i arrayet, får de bare
indhold i rækkefølge, og resten af data ignoreres.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Kasper Lund (12-02-2008)
| Kommentar Fra : Kasper Lund |
Dato : 12-02-08 13:22 |
|
Bertel Lund Hansen skrev:
> Kasper Lund skrev:
>
>> Jeg har en database med en masse navne:
>
>> Hvordan får jeg fat i fornavnet?
>
> $name="fornavn efternavn";
> list($firstname)=explode(' ',$name);
> eller
> list($firstname,$lastname)=explode(' ',$name);
>
> list() er en pseudokommando der kan bruges til at proppe data i
> mange variable på én gang. Opskriften er
>
> list(-variable-)=array(-data-);
>
> Hvis der er færre variable end data i arrayet, får de bare
> indhold i rækkefølge, og resten af data ignoreres.
>
Tusind tak.
| |
Johan Holst Nielsen (12-02-2008)
| Kommentar Fra : Johan Holst Nielsen |
Dato : 12-02-08 14:19 |
|
Kasper Lund wrote:
> Bertel Lund Hansen skrev:
>> Kasper Lund skrev:
>>
>>> Jeg har en database med en masse navne:
>>
>>> Hvordan får jeg fat i fornavnet?
>>
>> $name="fornavn efternavn";
>> list($firstname)=explode(' ',$name);
>> eller
>> list($firstname,$lastname)=explode(' ',$name);
>>
>> list() er en pseudokommando der kan bruges til at proppe data i
>> mange variable på én gang. Opskriften er
>>
>> list(-variable-)=array(-data-);
>>
>> Hvis der er færre variable end data i arrayet, får de bare
>> indhold i rækkefølge, og resten af data ignoreres.
>>
>
> Tusind tak.
For en god ordens skyld BØR det være
list($firstname,$lastname) = explode(' ',$name,2);
Ellers vil jeg komme til at hedde:
$firstname = 'Johan';
$lastname = 'Holst';
Med en limit vil jeg komme til at hedde:
$firstname = 'Johan';
$lastname = 'Holst Nielsen';
--
Johan Holst Nielsen
Freelance PHP Developer - http://phpgeek.dk
| |
MooreHojer (12-02-2008)
| Kommentar Fra : MooreHojer |
Dato : 12-02-08 15:19 |
|
> Med en limit vil jeg komme til at hedde:
> $firstname = 'Johan';
> $lastname = 'Holst Nielsen';
Hvilket juridisk set er forkert, da man i Danmark nemlig kun kan have ét
efternavn, men flere fornavne, i dagligdagen oftest delt op i fornavn og
mellemnavn.
Så en mere "korrekt" løsning vil måske være at fjerne limit og smide
explode()'s returværdi over i et array, og så kalde fornavn som $mitArray[0]
og efternavn som $mitArray[ (count($mitArray) - 1) ], og dem imellem de to
er så mellemnavne.
Man kan selvfølgelig sige at det er "ligemeget" om det er juridisk korrekt
det man gør.
Personligt mener jeg at det er en god vane at tillægge sig. Den dag man står
med et projekt hvor det er relevant at gøre det "rigtigt", så er det
allerede narturligt og man skal ikke til at lægge en "dårlig vane" fra fra
sig.
--
MooreHojer
| |
Bertel Lund Hansen (12-02-2008)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 12-02-08 16:40 |
|
MooreHojer skrev:
> > $lastname = 'Holst Nielsen';
> Hvilket juridisk set er forkert, da man i Danmark nemlig kun kan have ét
> efternavn
Navneloven:
§ 8. [...]
Stk. 4. Den, der bærer et efternavn bestående af flere navne, der
ikke er forbundet med bindestreg, kan bortkaste et af de
pågældende navne. Ministeren for familie- og forbrugeranliggender
kan fastsætte regler, der gør undtagelse fra bestemmelsen i 1. pkt.
Det fremgår ikke helt klart af navnetilladelsen, men jeg er ret
sikker på at min afdøde kone havde dobbelt efternavn:
http://bertel.lundhansen.dk/?page=navnetilladelse
> Personligt mener jeg at det er en god vane at tillægge sig. Den dag man står
> med et projekt hvor det er relevant at gøre det "rigtigt", så er det
> allerede narturligt og man skal ikke til at lægge en "dårlig vane" fra fra
> sig.
Jeg er enig i at det er godt at tillægge sig holdbare vaner. Det
var sådan set et bærende princip i min undervisning og er det i
andre sammenhænge. Derfor lærer jeg f.eks. aldrig småbørn at sige
"pruhest".
Nå, det var et sidespring.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
MooreHojer (12-02-2008)
| Kommentar Fra : MooreHojer |
Dato : 12-02-08 18:56 |
|
> Navneloven:
>
> § 8. [...]
>
> Stk. 4. Den, der bærer et efternavn bestående af flere navne, der
> ikke er forbundet med bindestreg, kan bortkaste et af de
> pågældende navne. Ministeren for familie- og forbrugeranliggender
> kan fastsætte regler, der gør undtagelse fra bestemmelsen i 1. pkt.
>
> Det fremgår ikke helt klart af navnetilladelsen, men jeg er ret
> sikker på at min afdøde kone havde dobbelt efternavn:
>
> http://bertel.lundhansen.dk/?page=navnetilladelse
hmmm...
Har fået det andet at vide på kommunen i forbindelse med et navneskift, men
det ser ud til at jeg er blevet forkert informeret...
beklager "besværet"
--
MooreHojer
| |
Bertel Lund Hansen (12-02-2008)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 12-02-08 19:17 |
|
MooreHojer skrev:
> beklager "besværet"
Der er ingen grund til at beklage. Nu får vi belyst både nogle
juridiske og nogle programmeringsmæssige forhold, og vi får
illustreret at det somme tider er besværligt at tilpasse noget
kode til virkelige forhold.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Philip Nunnegaard (12-02-2008)
| Kommentar Fra : Philip Nunnegaard |
Dato : 12-02-08 18:37 |
|
"MooreHojer" <simon@moorehojer.dk> skrev i meddelelsen
news:47b1ab0a$0$90264$14726298@news.sunsite.dk...
> Hvilket juridisk set er forkert, da man i Danmark nemlig kun kan have ét
> efternavn, men flere fornavne, i dagligdagen oftest delt op i fornavn og
> mellemnavn.
Så et barn, der både får farens- og morens efternavn - f.eks. Anders Jensen
Nielsen, hedder altså i princippet både Anders OG Jensen til fornavn?
> Så en mere "korrekt" løsning vil måske være at fjerne limit og smide
> explode()'s returværdi over i et array, og så kalde fornavn som
> $mitArray[0] og efternavn som $mitArray[ (count($mitArray) - 1) ], og dem
> imellem de to er så mellemnavne.
Så ryger alle de folk, der ikke lyder deres første fornavn (og vi er faktisk
nogle stykker).
En anden mulighed var at have fornavn(e) og efternavn(e) i hver sin kolonne,
alternativt et felt for navn plus ét for kaldenavn.
I mit tilfælde:
Navn: Piet Philip Nunnegaard
Kaldenavn: Philip Nunnegaard
| |
MooreHojer (12-02-2008)
| Kommentar Fra : MooreHojer |
Dato : 12-02-08 18:58 |
|
> En anden mulighed var at have fornavn(e) og efternavn(e) i hver sin
> kolonne, alternativt et felt for navn plus ét for kaldenavn.
Nok den "optimale" løsning efter min mening.
Bruger peronligt altid den atomare model, hvor man deler hvor man kan. Det
giver efter min mening en større fleksibilitet i forhold til søgning,
sortering og bearbjedning af dataene når man skal trække dem u igen.
--
MooreHojer
| |
Bertel Lund Hansen (12-02-2008)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 12-02-08 19:16 |
|
Philip Nunnegaard skrev:
> En anden mulighed var at have fornavn(e) og efternavn(e) i hver sin kolonne,
> alternativt et felt for navn plus ét for kaldenavn.
Man kan ikke vide hvad der er hvad uden at få det at vide af
personen. Mange navne kan være både for- og efternavne.
Det kommer altså an på den konkrete programmeringsopgave og de
tilgængelige oplysninger hvordan man skal kode det. På Fidusos
medlemslister har jeg sat parentes om de fornavne som folk ikke
bruger. Der er fire eksempler som kan findes ved at søge på "("
som navn.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Philip Nunnegaard (12-02-2008)
| Kommentar Fra : Philip Nunnegaard |
Dato : 12-02-08 19:34 |
|
"Bertel Lund Hansen" <unospamo@lundhansen.dk> skrev i meddelelsen
news:27o3r318h9iot8t66bogadlq6vsolsbgcu@4ax.com...
> Man kan ikke vide hvad der er hvad uden at få det at vide af
> personen. Mange navne kan være både for- og efternavne.
Næh! Så er vi ude i spørgsmålet om, hvem der indtaster de pågældende data.
Er det brugeren selv, er det jo ikke noget problem.
Er det webmaster, kan det være et problem, såfremt personen ikke har oplyst
det.
Og det sidste går jeg ud fra, er tilfældet på Fidusos medlemsliste.
| |
Bertel Lund Hansen (12-02-2008)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 12-02-08 19:36 |
|
Philip Nunnegaard skrev:
> Er det webmaster, kan det være et problem, såfremt personen ikke har oplyst
> det.
> Og det sidste går jeg ud fra, er tilfældet på Fidusos medlemsliste.
Nej, folk skriver selv deres navn i en formular, men der er kun
én boks til navnet, så det er umuligt logisk at opdele i for- og
efternavne. Jeg dog opdeler ikke navnet, så det er ikke noget
problem.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Martin Højriis Krist~ (13-02-2008)
| Kommentar Fra : Martin Højriis Krist~ |
Dato : 13-02-08 19:29 |
|
"Kasper Lund" <fake@usenet.dk> skrev i en meddelelse
news:47b17ad6$0$2084$edfadb0f@dtext02.news.tele.dk...
> Hvordan får jeg fat i fornavnet? (altså ikke hvordan jeg henter fra
> databasen, men hvordan jeg med php finder det første ord i en sætning)
Andre har givet løsningen i PHP, men jeg vil alligevel tillade mig (på trods
af gruppen) at fortælle at du kan gøre det i MySQL med SUBSTRING_INDEX.
Så får du kun fornavnet ud i resultatet, og du kan bruge fornavnet i din
SQL.
--
Martin Højriis Kristensen
http://www.martinshjemmeside.dk/ - Lidt af hvert
http://www.mestomaarhus.dk/ - Mest om Århus
| |
|
|