拼音首字母"/>
php mysql 拼音首字母
在很多商城系统中,都有把各种品牌按拼音排序,如果直接用sql的order的话,会先显示英文再显示中文,当然也不好判断对应的是哪个字母。
昨天自己尝试的写了一下,基本的效果出来了。写的是utf-8版本的,如果是GBK版本,可以把代码中转化编码的那一段去掉。
$conn = @ mysql_connect("localhost", "root", "") or die("数据库连接错误"); mysql_select_db("user", $conn); mysql_query("set names utf8");
$sql= "SELECT * FROM sdb_brand order by brand_name";
$query = mysql_query($sql); $rows = mysql_num_rows($query); while ($row=mysql_fetch_array($query)) { $zhi=iconv("UTF-8", "GBK", "$row[brand_name]"); $x[ ]=strtoupper(substr(c("$zhi"),0,1)); $str1=chr(88); $y[ ]=iconv("GBK", "UTF-8", "$zhi"); }
for($m=65;$m<=90;$m++) { $zimu=chr($m); echo $zimu.”
”; $z=0; for($i=0;$i<=$rows;$i++) { if ($x[$i]==$zimu) { echo "
"; } ?>
其中fun.php是提取首字母的函数,为网上搜索出来的。
fun.php源代码:
function g($num){ global $d; if($num>0&&$num<160){ return chr($num); } elseif($num-10247){ return “”; }else{ for($i=count($d)-1;$i>=0;$i–){ if($d[$i][1]<=$num)break; } return $d[$i][0]; } }
function c($str){ $ret=”"; for($i=0;$i160){ $q=ord(substr($str,++$i,1)); $p=$p*256+$q-65536; } $ret.=g($p); } return $ret; } ?>
更多推荐
php mysql 拼音首字母
发布评论