Avatar billede spiegelberg Nybegynder
28. januar 2011 - 17:04 Der er 7 kommentarer

Æ Ø Å før A B C

Hej.

Jeg har en seriøs hovedpine over sortering af en masse firmaer jeg kalder ud fra min database:

http://kbh-tomrerlaug.dk/firma.php

mit charset for tabellen er: latin1_danish_ci, men alle kolonerne i tabellen kører: utf8_danish_ci

i mine php filer har jeg denne kode:
(php kode)
header('Content-type: text/html; charset=utf-8');

eller

(html kode)
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">


det virkelig frustrerende! er der andre der har haft samme problem?
og hvordan løste i det?
Avatar billede webweaver Praktikant
28. januar 2011 - 17:22 #1
Hvilket problem er det egentlig at du har?
Kan du ikke få dem sorteret som du ønsker eller?
Avatar billede spiegelberg Nybegynder
29. januar 2011 - 14:54 #2
hvis du tjekker dette link: http://kbh-tomrerlaug.dk/by.php istedet hvor jeg sortere efter by:
så sortere den "Ålsgårde" før "albertslund"

dvs. jeg får æ ø å før a b c. hvordan fan får jeg en helt normal dansk sortering?
Avatar billede webweaver Praktikant
29. januar 2011 - 15:41 #3
Okay på den måde. Hvordan ser dit SQL statement ud?
Du sorterer på følgende måde, ORDER BY city ASC ? Hvor city selvfølgelig skal være dit eget felt.

Kan du ikke lave dit tabel charset i databasen om til UTF-8?
Jeg plejer ikke at have problemer med sortering af disse data, men kan godt være det er tegnsættet der gør det.
Avatar billede spiegelberg Nybegynder
01. februar 2011 - 09:28 #4
function displayUsers(){
  global $database;
  $q = "SELECT * "
      ."FROM ".TBL_USERS." ".WHERE." userlevel='1' ORDER BY town";
  $result = $database->query($q);
  /* Error occurred, return given name by default */
  $num_rows = mysql_num_rows($result);
  if(!$result || ($num_rows < 0)){
      echo "Error displaying info";
      return;
  }
  if($num_rows == 0){
      echo "Database table empty";
      return;
  }


det sådan jeg sortere.

har skiftet alle collations til utf8_danish_ci

og alle mine meta tags til utf8
+
header('Content-type: text/html; charset=utf-8');
i starten af alle mine php filer.

men den vil stadig ikke sortere rigtigt
Avatar billede webweaver Praktikant
01. februar 2011 - 15:56 #5
Højst sandsynligt fordi at du mangler noget i din ORDER.
Du skal lige have ASC med.

."FROM ".TBL_USERS." ".WHERE." userlevel='1' ORDER BY town ASC";

Hvad siger den så nu?
Avatar billede spiegelberg Nybegynder
01. februar 2011 - 20:19 #6
Det gav intet udslag :(
Avatar billede webweaver Praktikant
01. februar 2011 - 20:55 #7
Hmm det forstår jeg ikke. Hvordan sorterer dem det så, når du bruger ASC? Jeg kan se at listen er sorteret anderledes end tidligere, hvor du havde noget med å først, a og så videre ...

Har du selv skrevet dit SQL statement? Den er sat sammen på en måde, som ikke burde være nødvendig!

Dette skulle være fint, så prøv med det;

$q = "SELECT * FROM TBL_USERS WHERE userlevel = 1 ORDER BY town ASC";
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