在我的网站中,我需要在一个页面中显示所有产品。让我进一步解释一下。项目的详细信息将保存在 mysql 表中。我需要使用该项目创建一个品牌目录页面。如果有从字母 A 开始的项目,
一个
- 阿玛尼
- 阿南
- 昂古多
以及从 B 开始的项目,
乙
- 百加得
- 巴洛尼
就像我需要展示的那个 AZ。但我是 PHP 新手,并试图创建一个逻辑,但没有附带任何东西。所以请任何人都可以帮助我吗??>
提前致谢。
快速回复会很好。
谢谢
尝试这个 :
$sql = mysql_query("SELECT * FROM ......");
$res = array();
while($row = mysql_fetch_assoc($sql)){
$title = $row['title'];
$letter = substr($title, 0, 1);
$res[$letter][] = $title;
}
ksort($res);
echo "<pre>";
print_r($res);
您说您正在使用 MySQL,但出于某种原因想要在 PHP 中进行排序。你知道 (My)SQL 中的ORDER BY构造吗?
这使得即使在输入 PHP 之前,也可以很容易地按字母顺序对记录进行排序。想象一个看起来像这样的查询:
SELECT name
FROM table
然后你可以想象得到如下结果:
John
Abe
Pete
Frank
但是,当您使用 ORDER BY 构造并将查询转换为:
SELECT name
FROM table
ORDER BY name
您按字母顺序获得结果(文本数据类型的默认值)
Abe
Frank
John
Pete
如果您决定要降序排序,只需使用ORDER BY name DESC
(或ASC
显式升序)
尝试在mysql查询中排序
SELECT id,name from TABLE order by name asc;
现在从您从查询中收到的内容开始搜索 char 'A' 并相应地创建块。
建议这种方法:
for
使用循环遍历已排序的项目key
作为'A'您最终应该得到一个像这样的结构的关联数组:
array(
"A" => array("Armani", "Anan", "Aungundo"),
"B" => array("Bacardi", "Barloni"),
"C" => ... ,
...
)
您可以使用这样的 Mysql 查询来解决它:
$letter = 'a'; // or 'b' ... 'z'
$q = mysql_query(" select * from `my_table` where `my_coloumn` like '".$letter."%' ");
while($r = mysql_fetch_object($q))
{
echo $r->my_cloumn.'<br />';
}