æ, ø og å i en database
Kære folk hos NemProgrammering
Jeg har lige et spørgsmål angående phpMyAdmin. Jeg har manuelt lavet en tabel med en række indgange (fields). Nogle af disse er af typen VARCHAR eller TEXT. Problemet er bare, at når jeg senere skriver et PHP dokument til at udskrive indholdet af tabellen, så bliver æ, ø og å erstattet med mærkelige symboler, fx kasser. Hvad skal jeg gøre for at få indholdet skrevet med danske tegn, sådan som de er indtastet? Jeg har opdaget, at der automatisk under punktet "Tegnsætning(sortering" (hedder vist Collation på engelsk), automatisk bliver skrevet "Latin1_swedish_ci" i phpMyAdmin. Jeg prøvede at rette det til "Latin1_danish_ci", men det hjalp ikke. Jeg ved ikke, om det har noget med sagen at gøre. Jeg håber I kan hjælpe.
NB! Ellers skal I have super stor ros for denne side!! Jeg husker en gang for ca. 15 år siden, at der var noget, som hed "Webcafeen". Nu er der endelig kommet noget nyt af samme skuffe. Webcafeen blev desværre nedlagt for en del år tilbage. Jeres skærmvideoer er til stor hjælp. De har fået mig sat på sporet med MySQL databaser igen. Skal dog have skrevet mine database manipulationer i MySQL PDO, som jeg har fået at vide skal være fremtiden ... Tak for en god side!
Erik
Jeg har lige et spørgsmål angående phpMyAdmin. Jeg har manuelt lavet en tabel med en række indgange (fields). Nogle af disse er af typen VARCHAR eller TEXT. Problemet er bare, at når jeg senere skriver et PHP dokument til at udskrive indholdet af tabellen, så bliver æ, ø og å erstattet med mærkelige symboler, fx kasser. Hvad skal jeg gøre for at få indholdet skrevet med danske tegn, sådan som de er indtastet? Jeg har opdaget, at der automatisk under punktet "Tegnsætning(sortering" (hedder vist Collation på engelsk), automatisk bliver skrevet "Latin1_swedish_ci" i phpMyAdmin. Jeg prøvede at rette det til "Latin1_danish_ci", men det hjalp ikke. Jeg ved ikke, om det har noget med sagen at gøre. Jeg håber I kan hjælpe.
NB! Ellers skal I have super stor ros for denne side!! Jeg husker en gang for ca. 15 år siden, at der var noget, som hed "Webcafeen". Nu er der endelig kommet noget nyt af samme skuffe. Webcafeen blev desværre nedlagt for en del år tilbage. Jeres skærmvideoer er til stor hjælp. De har fået mig sat på sporet med MySQL databaser igen. Skal dog have skrevet mine database manipulationer i MySQL PDO, som jeg har fået at vide skal være fremtiden ... Tak for en god side!
Erik
Re: æ, ø og å i en database
Er dit charset i din DB sat til at bruge UTF-8?
- scootergrisen
- Moderator
- Indlæg:709
- Tilmeldt:21. jun 2012, 23:40
- Kontakt:
Re: æ, ø og å i en database
Du skal også have sat korrekt encoding i din HTML kode.
Kode: Vælg alt
<head>
<meta charset="utf-8">
</head>
Re: æ, ø og å i en database
Dreamweaver skriver automatisk:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
så jeg regner med, at den side af sagen er i orden. Hvad angår selve Databasen, så har jeg prøvet at ændre tegnsæt på de enkelte indgange i tabellen. Der er mange valgmuligheder. Jeg valgte utf8_danish_ci. Jeg ved ikke om det er rigtigt? Desværre betyder det ikke, at jeg får vist æ, ø og å rigtigt, når jeg trykker på "Preview in IExplore" i Dreamweaver. Her er et skærmbillede af min tabel, som skal forestille at være et forsøg på at lave en gæstebog:
Er det stadig ikke de rette tegnsæt?
Erik
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
så jeg regner med, at den side af sagen er i orden. Hvad angår selve Databasen, så har jeg prøvet at ændre tegnsæt på de enkelte indgange i tabellen. Der er mange valgmuligheder. Jeg valgte utf8_danish_ci. Jeg ved ikke om det er rigtigt? Desværre betyder det ikke, at jeg får vist æ, ø og å rigtigt, når jeg trykker på "Preview in IExplore" i Dreamweaver. Her er et skærmbillede af min tabel, som skal forestille at være et forsøg på at lave en gæstebog:
Er det stadig ikke de rette tegnsæt?
Erik
Re: æ, ø og å i en database
Hej,
Jeg går ud fra at trække din data ud via php.
har du prøver at tilføje dette i starten af dit doc?
Jeg går ud fra at trække din data ud via php.
har du prøver at tilføje dette i starten af dit doc?
Kode: Vælg alt
<?php header('Content-type: text/plain; charset=utf-8'); ?>
Re: æ, ø og å i en database
Hvis alt fejler så gør følgende for at finde fejlen.
#1 Lav et udtræk direkte fra din DB og se om du udskriver æ, ø og å.
#2Lav et udtræk direkte i din HTML og se om du udskriver æ, ø og å.
#3 Lav et udtræk direkte fra din PHP kode og se om du udskriver æ, ø og å.
Så kan du hurtigt finde kilden til problemet hvis ikke den er flere steder.
#1 Lav et udtræk direkte fra din DB og se om du udskriver æ, ø og å.
#2Lav et udtræk direkte i din HTML og se om du udskriver æ, ø og å.
#3 Lav et udtræk direkte fra din PHP kode og se om du udskriver æ, ø og å.
Så kan du hurtigt finde kilden til problemet hvis ikke den er flere steder.
Re: æ, ø og å i en database
Jeg har prøvet at skrive noget tekst med æ, ø og å i både i html delen af dokumentet og i php koden via en echo ... I begge tilfælde bliver æ, ø og å vist korrekt i browseren. Så det tyder på, at det ikke er indstillinger i Dreamweaver, men stammer fra håndtering af data fra databasen. Christian, jeg er ikke sikker på, hvad du mener med "lave et udtræk fra din DB"? Er det ikke det jeg gør ved at skrive dokumentet med php koden, som skriver indholdet af tabellen ud? Når jeg i phpMyAdmin kigger på det, der står i tabellen, så ser det rigtigt ud med æ, ø og å. Jeg er lidt blank hvad angår idéer nu ...
Erik
Erik
Re: æ, ø og å i en database
I de fleste databaser er det muligt at downloade et management værktøj. Det bruger jeg selv til Windows DB og MySQL.
I disse kan du lave et udtræk direkte fra databasen. Og du bruger derfor ikke HTML eller PHP til at vise eller hente resultatet.
Til MySQL bruger jeg selv MySQL Workbench 6.1
I disse kan du lave et udtræk direkte fra databasen. Og du bruger derfor ikke HTML eller PHP til at vise eller hente resultatet.
Til MySQL bruger jeg selv MySQL Workbench 6.1
Re: æ, ø og å i en database
Tak for fiffet med Workbench. Det kan være, at jeg på et tidspunkt installerer det. Det ændrer vel ikke noget ved phpMyAdmin? I øjeblikket vil jeg dog godt blive ved phpMyAdmin, da den jo i princippet bør virke. Jeg prøvede at lave en lille tabel helt fra grunden, hvor jeg konsekvent valgte tegnsættet utf8_danish_ci (rent utf-8 er der ikke). Det gav desværre samme resultat. Jeg eksporterede derefter databasen og importerede den phpMyAdmin på mit webhotel. Derefter uploadede jeg min php side med de ændrede passwords til mit webhotel. Desværre fik jeg igen ikke vist æ, ø og å korrekt. Det er meget frustrerende og uforståeligt. Her er indholdet af min lokale php side, dog med password stjernet:
Jeg har brugt jeres fine tutorials til at hente data ud fra tabellen.
Hilsen,
Erik
Kode: Vælg alt
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
$server = "localhost";
$brugernavn = "root";
$kodeord = "************";
$db = "lille";
mysql_connect($server,$brugernavn,$kodeord) or die(mysql_error());
echo "Forbundet til MySQL server<br/>";
mysql_select_db($db) or die(mysql_error());
echo "Forbundet til Databasen<br/>";
$data = mysql_query("SELECT * FROM lilletabel") or die(mysql_error());
while ($info = mysql_fetch_array($data))
{
echo "ID: ".$info['id']."<br/>";
echo "Navn: ".$info['navn']."<br/>";
echo "Tekst: ".$info['tekst']."<br/>"."<br/>";
}
?>
</body>
</html>
Jeg har brugt jeres fine tutorials til at hente data ud fra tabellen.
Hilsen,
Erik
Re: æ, ø og å i en database
Sagen er afklaret! Jeg spurgte på et andet forum og fik tippet at database forbindelsen også skal vide, at det er utf-8. Det kan ske ved at tilføje følgende linje:
Efter jeg tilføjede den, kom det til at virke med æ, ø og å. I øvrigt er koden ikke så god, har jeg fået at vide. Sikkerheden er ikke i orden. De MySQL kommandoer I anvender i nogle af jeres videoer er på vej ud (deprecated), så måske er det en idé at lave videoerne om, eller helt slette dem fra jeres side. Man bruger i dag mysqli eller MySQL PDO, men det ved I sikkert godt. Under alle omstændigheder har jeres videoer om emnet hjulpet mig, så jeg har forstået de forskellige processer med at lave en lokal database i phpMyAdmin og få php kode til at skrive indholdet af databasen ud. Jeg vil efterfølgende skrive min kode om til PDO efter den glimrende tutorial her:
http://wiki.hashphp.org/PDO_Tutorial_fo ... Developers
Jeg vil sikkert kigge efter andet på jeres side. Fortsæt det gode arbejde!
Hilsen,
Erik V.
Kode: Vælg alt
mysql_query("Set names 'utf8'")
http://wiki.hashphp.org/PDO_Tutorial_fo ... Developers
Jeg vil sikkert kigge efter andet på jeres side. Fortsæt det gode arbejde!
Hilsen,
Erik V.
Re: æ, ø og å i en database
Godt at du fik løst dit problem
Og så lærte jeg også noget nyt med hensyn til forbindelsen, selvom det virker noget bagvendt på mig at den også har sit eget charset.
I teorien burde man aldrig lave en SQL kommando uden om en stored procedure. Men så vidt jeg ved har scooter helt styr på hvad der er på vej ud med mere
Vh
Cristian
Og så lærte jeg også noget nyt med hensyn til forbindelsen, selvom det virker noget bagvendt på mig at den også har sit eget charset.
I teorien burde man aldrig lave en SQL kommando uden om en stored procedure. Men så vidt jeg ved har scooter helt styr på hvad der er på vej ud med mere
Vh
Cristian