Avatar billede plaf Nybegynder
03. marts 2008 - 12:59 Der er 8 kommentarer og
1 løsning

MySQL-felt med danske bogstaver gennem replace funktion

Jeg trækker værdien af et felt i en database ud: $row_sap['Name'] . Værdien i dette tilfælde er BRÆDSTRUP.

$erstat = array("Æ","Ø","Å","æ","ø","å");           
$erstat_med = array("AE","OE","AA","ae","oe","aa");           
$image = str_replace($erstat, $erstat_med, $row_sap['Name']);
           
echo $image;

Her ville jeg så gerne have at $image = BRAEDSTRUP - men det er stadig lig BRÆDSTRUP.

Nogen der kan gennemskue hvor det går galt?

/Plaf
Avatar billede Slettet bruger
03. marts 2008 - 13:01 #1
Det har jo ikke noget med MySQL at gøre, men snarere PHP, prøv at spørge ovre hos PHP folkene.
Avatar billede plaf Nybegynder
03. marts 2008 - 13:10 #2
Det tror jeg så alligevel, det har...

Jeg kan erstatte alle andre bogstaver i strengen - men ikke Æ-et i Brædstrup - Hvis det vel og mærke er trukket ud af mysql-databasen. Laver jeg en variabel og tildeler den værdien Brædstup, så går det fint!

Tænkte på at det kune være noget med Kollation (Collation). Den står til: latin1_swedish_ci.

/Plaf
Avatar billede Slettet bruger
03. marts 2008 - 13:24 #3
Så er spørgsmålet nok, hvilket tegnsæt ligger din database i og hvilket tegnsæt skriver du Æ i i din PHP fil
Avatar billede plaf Nybegynder
03. marts 2008 - 13:39 #4
Som jeg skrev, så er feltet latin1_swedish_ci. Siden står med iso-8859-1
Avatar billede smitten1 Nybegynder
03. marts 2008 - 13:43 #5
uden at vide hvordan data bliver behandlet før indsættelse, hvad siger echo htmlentities($image) så?
Avatar billede plaf Nybegynder
03. marts 2008 - 13:51 #6
Til smitten1: Den siger også BRÆDSTRUP.
Avatar billede plaf Nybegynder
03. marts 2008 - 13:53 #7
Til smitten1: Vrøvl: i Vis kilde siger den BRÆDSTRUP
Avatar billede plaf Nybegynder
03. marts 2008 - 14:00 #8
Så fik jeg det fik, jeg skulle bruge:

$before_image = htmlentities($row_sap['SapId']);
            $erstat = array("Æ","Ø","Å","æ","ø","å");           
            $erstat_med = array("AE","OE","AA","ae","oe","aa");           
            $image = str_replace($erstat, $erstat_med, $before_image);

og så virker det!

/Plaf
Avatar billede plaf Nybegynder
03. marts 2008 - 15:02 #9
Svarer lige selv...
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
Computerworld tilbyder specialiserede kurser i database-management

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