Hej,
Sitter och jobbar på en kommunsida som ska göras i Drupal, eftersom det verkar vara det bästa systemet för det ;)
IALLAFALL! Har nu satt igång default view: glossary.
Och nu har jag en fin lista från Å-Z... Letade på nätet hur detta skulle lösas, och det var ju såklart Collation som skulle vara problemet.
Så...
1. Jag har ändrat Collation på hela databasen (vilket bara gäller för nya tabeller)
2. Då har jag även ändrat Collation på ALLA tabeller som fanns i databasen (77st).
Men ÄNDÅ så envisas glossary view att lista AÄÅ och OÖ tillsammans... Vad kan då vara fel?
En sista fråga när vi ändå talar om Glossary, hur får man bort antalet poster per bokstav? Alltså jag vill att det ska stå A | B | C inte A (2) | B (5) | C (3)
Tack!
/Kristian
Comments
Samma fel här...
Jag har brottats med samma problem i en dryg vecka nu. Det verkar som att servern där databasen ligger även den måste vara Utf-8 swedish. Jag ligger på en delad server hos Oderland och de är måttligt intresserade av att ändra kollation för resten av kunderna på samma server, vilket jag har full förståelse för. Just nu kollar jag upp om det finns någon vps-lösning till ett vettigt pris någonstans som man kan testa. Någon som har tips?
Mvh David
MySQL och UTF-8
Om jag inte minns helt fel så är det din connection som ska vara utf-8 mot en databas som är utf-8. Servern skall kunna leverera korrekt kollationering oavsett vad default är.
Det kan man tycka...
Men hos Oderland så har jag inte lyckats installera Drupal med rätt kollation från början. Kollation för MySQL-uppkoppling är Utf_8_Swedish-ci och MySQL teckenuppsättning är UTF-8 Unicode.
När jag har dessa inställningar skapas alla tabeller som Utf-8 general-ci. Då har jag ändrat till Utf_8_Swedish-ci redan innan Drupal core är installerad.
Är det någon som har lyckats installera Drupal med Utf_8_Swedish-ci hos Oderland och fått ÅÄÖ att sorteras rätt? I så fall hur, och är ni då på delad server?
Mvh David
...
Men nu sitter inte kollationering på servernivå utan även på databas- och tabellnivå vilket vill säga att du kan ange kollationeringen när du skapar tabellen. MySQL kan hantera många olika språk samtidigt.
Detta kanske hjälper:
9.1.7.1. Using COLLATE in SQL Statements
With the COLLATE clause, you can override whatever the default collation is for a comparison. COLLATE may be used in various parts of SQL statements. Here are some examples:
Exempel:
select a,b,c from data ORDER BY a COLLATE Utf_8_Swedish_ci;Jag har Latin1_Swedish_ci på alla tabeller...
Som sagts tidigare så har jag Latin1_Swedish_ci collation i alla tabeller (efter 77 sqlquery körningar)
Så det borde nog ligga någon annanstans oxå...
I ditt exempel ovan så gör du ju en Collate i själva select-queryn, och SÅ kan de väl inte ha kodat hela Drupal systemet? För att vara på den säkra sidan så gjorde jag en sökning i koden, och hittade inga träffar på COLLATE, så förhoppningsvis så är det inte ställt i koden...
MEN det finns ju ett par ställen man kan ställa in språk i Webmin för. t.ex. apache... Kan det vara något där?
/Kristian
UTF_8_Swedish_ci contra Latin1_Swedish_ci
Ser här på ditt svar att du har UTF_8... jag körde på Latin1_... Det kan ju vara DET som är problemet...
Jag får kolla imorgon när jag kommer till jobbet...
/Kristian
Kodning av drupal vetefan men
Troligtvis har du gjort fel någonstans. Ibland blir man blind av att kolla på kod så ta en break och kolla sen igen så hittar du det nog.
Installationen av servern har inget med det hela att göra, som sagt så styrs det på flera nivåer. MEN, är din databas satt till rätt collation så ska resten följa av sig självt såvida du inte anger annat i din query eller vid initiering av din connection.
Ser du ingen skillnad oavsett collation så känns det lite spöklikt, måntro en cache som svarar? MySQL har väl inte värdens bästa cachekontroll så värt att undersöka.
Lite sql-kod... och UTF8_swedish_ci collation
Hej,
Jag bytte till UTF8_Swedish_ci istället för Latin1_Swedish_ci, men samma resultat...
När jag kör denna frågan (som views-glossary spottar ut så får jag ÅÄA tillsammans
SELECT node.nid AS nid, node.title AS node_title, users.name AS users_name, users.uid AS users_uid, node.changed AS node_changed
FROM node node
INNER JOIN users users ON node.uid = users.uid
WHERE SUBSTR( node.title, 1, 1 ) = 'a'
ORDER BY node_title ASC
LIMIT 0 , 30
Men om jag gör om lite i skriptet och kör det med collate i select-queryn så fungerar det...
SELECT node.nid AS nid, node.title AS node_title, users.name AS users_name, users.uid AS users_uid, node.changed AS node_changed
FROM node node
INNER JOIN users users ON node.uid = users.uid
WHERE SUBSTR( node.title, 1, 1 ) = 'a'
COLLATE utf8_swedish_ci
ORDER BY node_title ASC
LIMIT 0 , 30
Detta verkar ju betyda att ÄVEN fast jag har Collation utf8_sedish_ci så sorterar den inte efter det?
Har även startat om servern för att utesluta cache...
snyft vad gör jag för fel?
/Kristian
Servervariabler
Kör följande på servern:
mysql show variables | grep characterOch visa mig vad du får för resultat
Character variables
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
Mjapp
Så kan du kolla i character_sets_dir efter din collationfil.
Kör också en show create table i mysql för din tabell eller gör en mysqldump --add-drop-table --add-create (dbnamn) > text.sql och kika om din tabell verkligen skapats med rätt collation.
Test - skapa en tabell manuellt i mysql (ej med skript) med rätt collation och gör samma övning på den dvs show create
Detta har INTE alls med
Detta har INTE alls med ovanstående fråga att göra, men jag måste få säga det ändå... Ni är så trevliga på det här forumet, ger bra svar utan nedlåtande kommentarer.
Jag har varit inne på många andra forum, där man bemöts som om man var nå´t som katten släpat in när man ställer en nybörjarfråga.
Tack för det!
Ann-Britt
Om numreringen...
Numreringen i Glossary kommer från en attachment i vyn, som visar "summary sorted ascending" när inkommande argument saknas.
Om du hittar attachment-displayen i Views och klickar på något av rubrikerna eller kugghjulen bland inställningarna för arguments kommer du att hitta inställningar för att stänga av numreringen.
Lycka till!
//Johan Falk, NodeOne
PS till bambi_2: Och dessutom finns det folk som du som ger positiv feedback! Snacka om trevligt!
**
Vill du lära dig mer om Drupal? Kolla in samlingen av tips och guider!
Har du en fråga om Drupal? Missa inte FAQ-sidan på forumet!
Första svenska boken om Drupal! Börja med Drupal – smart webbpublicering med open source
Kolla in NodeOnes Drupalkurs i Panels och Views 15–17 september!