按字母顺序排列阿拉伯数据

时间:2015-04-09 23:14:19

标签: php mysql sorting arabic

如何从阿拉伯字母中订购从MySQL中获取的数据?

注意:我在MySQL中使用utf8_general_ci作为排序规则,编码很好,我只想知道如何按字母排序数据。

1 个答案:

答案 0 :(得分:1)

为了使用php在mysql数据库中对阿拉伯语文本进行排序,你必须确保:

  1. MySQL charset:UTF-8 Unicodeutf8
  2. MySQL连接排序规则:utf8_general_ci
  3. 您的数据库和表格排序设置为:utf8_general_ciutf8_unicode_ci
  4. 所以当你创建你的表时,将charset设置为utf8:

    CREATE TABLE my_table (
    id int(11) NOT NULL auto_increment,
    name varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
    PRIMARY KEY  (id)
    ) DEFAULT CHARSET=utf8;
    

    如果您已经在latin1中编码了一个表,请将其转换为:

    ALTER TABLE `my_table` CONVERT TO CHARACTER SET utf8
    

    请参阅:Character set in MySQL

    然后,在设置数据库连接时需要在PHP中添加一行:

    mysql_query ('SET NAMES \'UTF8\'');  
    

    或者:

    mysql_set_charset ('UTF8'); // PHP 5.2.3 or greater.
    

    或者,如果您正在使用PDO,则可以将其作为第4个参数传递:

    $db = new PDO ('mysql:host=localhost;dbname=tests', 'root', '', 
                   array (PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
    

    另外,请不要忘记将页面标题设置为utf8

    header ('Content-type:text/html; charset=utf-8');
    

    示例排序查询:

    $sql = "SELECT * FROM my_table ORDER BY name" ;
    

    希望这有帮助。