Avatar billede vango6 Praktikant
31. december 2005 - 12:28 Der er 12 kommentarer og
1 løsning

Kun første bogstav i efternavn

Hej
vi er nogle stykker der samles til lidt spil.
vi er nu blevet 22 personer og har derfor brug for forbogstav fra efter navnet, det havde jeg ude ladt ved første udkast!
Koden som den er nu:
<?
        $query = "SELECT navn,gsnit FROM userstats, deltagere where deltagere.id=userstats.userid order by gsnit DESC";
        //echo "<br>".$query."<br>";
        $result = mysql_query($query) or die('Query failed: ' . mysql_error());
        $a=0;
        while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
        {
        $data = explode(" ",$line['navn']);
?>
        <tr>
            <td><?=$data[0];?></td>
            <td align="center" width="50"><?=round($line["gsnit"],2);?></td>
        </tr>
Avatar billede kourinsu Nybegynder
31. december 2005 - 12:44 #1
Du kan lave en ekstra kolonne i databasen, så der en til fornavn og en til efternavn. Så kan du udskrive første bogstav i efternavn med f.eks. substr() funktionen.
Avatar billede kourinsu Nybegynder
31. december 2005 - 12:47 #2
Alternativt kan du også udskrive første tegn i $data[1] med samme funktion...
Avatar billede Slettet bruger
31. december 2005 - 16:26 #3
Jeg tror det er $data[(count(data)-1)][0] du skal have fat i.
Avatar billede kourinsu Nybegynder
31. december 2005 - 16:30 #4
Sådan som jeg opfatter koden, står hele navnet i en kolonne, altså: fornavn efternavn. Så bruger han explode() til at lave et array, hvor index 0 indeholder fornavn og index 1 indeholder efternavn. Hvis jeg har ret, må det være $data[1] han skal have gang i.
Avatar billede Slettet bruger
31. december 2005 - 16:34 #5
Ja, men hvis der også er mellemnavn eller flere fornavne, finder (count(data)-1) det sidste led af strengen.
Avatar billede Slettet bruger
31. december 2005 - 16:34 #6
og hvis det er første bogstav, bruges den sidste [0] til at finde dette.
Avatar billede kourinsu Nybegynder
31. december 2005 - 16:42 #7
Jeg syntes, der er en forholdvis stor risiko for fejl, når man har hele navnet i en kolonne. Netop som du siger, med fornavne, mellemnavne og efternavne. Jeg ville fortrække flere kolonner med navne, men ellers kan begge vores forslag nok bruges. Det afhænger af, om der bruges mellemnavne og hvilken teknik man er mest fortrolig med.
Avatar billede Slettet bruger
31. december 2005 - 16:49 #8
Ja.. Min vil altid virke, mens din kun vil virke hvis folk har mellemnavne eller flere fornavne.
Jeg kan ikke se noget grund til at bruge en statisk løsning, når en dynamisk er til stede.
Avatar billede Slettet bruger
31. december 2005 - 16:51 #9
substr(trim($data[(count(data)-1)]),0,1)

Den er skudsikker.
Avatar billede Slettet bruger
31. december 2005 - 16:52 #10
substr(trim($data[(count($data)-1)]),0,1)

naturligvis..
Avatar billede kourinsu Nybegynder
31. december 2005 - 16:53 #11
Vango6 skrev han skulle bruge forbogstavet i efternavnet. Derfor må man formode, at der altid vil være et efternavn. Desuden vil han jo ikke have det sidste bogstav i navnet, men det første i efternavn.
Avatar billede vango6 Praktikant
01. januar 2006 - 04:57 #12
Tak for hjælpen
Avatar billede Slettet bruger
01. januar 2006 - 12:32 #13
Selv tak, vango6.

kourinsu: Min finder det første bogstav i efternavnet, fordi efternavnet _altid_ er den sidste del af navnet. Dvs hvis man hedder "Jens Bjerre Mikkelsen", finder den "M" i stedet for "B", som din statiske version ville.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester