Page 1 of 1

Alpha Index don't return accented letters

Posted: Sat Mar 24, 2012 11:25 am
by xamonix
Hi.
I got an alpha index (A | B | C | D |... ) to catalogue lyrics, so if the user wants to list all lyrics starting by "A" he simply clicks "A". But the returned results don't show lyrics started by "À" for example "Às pedras da rua".

How can I get all the results started by "A" including the ones with accented letters like "À"?

Here is the code I got:

Code: Select all

switch($task){
                        case "listforletter":
       
                                $action = "index.php?option=".$option."&Itemid=".$Itemid."&
amp;task=".$task."&letter=".$letter;
                                if($letter!='0')
                                        $database->setQuery("SELECT COUNT(a.id) FROM #__jmovies as a WHERE a.access <= ".(int)$my->gid." AND SUBSTRING(a.title,1,1)='".$letter."'");
                                else
                                        $database->setQuery("SELECT COUNT(a.id) FROM #__jmovies as a WHERE a.access <= ".(int)$my->gid." AND (SUBSTRING(a.title,1,1)='0'");
                                $total = $database->loadResult();
                                break;

Thank you for your time !

Re: Alpha Index don't return accented letters

Posted: Tue Mar 27, 2012 2:48 pm
by tr0gd0rr
It depends on the character set used on the column. You are probably using latin1. You'll need to use utf8_general_ci (Source). And you may need to use `LIKE '$letter%'` instead of `SUBSTRING()`.
In general, you should probably use utf8_general_ci on all string-type columns.