/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste