-1

在我的网站中,我需要在一个页面中显示所有产品。让我进一步解释一下。项目的详细信息将保存在 mysql 表中。我需要使用该项目创建一个品牌目录页面。如果有从字母 A 开始的项目,

一个

  • 阿玛尼
  • 阿南
  • 昂古多

以及从 B 开始的项目,

  • 百加得
  • 巴洛尼

就像我需要展示的那个 AZ。但我是 PHP 新手,并试图创建一个逻辑,但没有附带任何东西。所以请任何人都可以帮助我吗??>

提前致谢。

快速回复会很好。

谢谢

4

5 回答 5

3

尝试这个 :

$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);
于 2013-03-08T09:03:39.540 回答
1

您说您正在使用 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显式升序)

于 2013-03-08T09:03:22.777 回答
0

尝试在mysql查询中排序

SELECT id,name from TABLE order by name asc;

现在从您从查询中收到的内容开始搜索 char 'A' 并相应地创建块。

于 2013-03-08T09:01:56.903 回答
0

建议这种方法:

  1. 按照@SudipPal 的建议,首先在 mysql 中对结果列表进行排序。
  2. for使用循环遍历已排序的项目
  3. 收集所有的'A'并将它们推入一个新的关联数组中,key作为'A'
  4. 重复其余的字母

您最终应该得到一个像这样的结构的关联数组:

array(
    "A" => array("Armani", "Anan", "Aungundo"),
    "B" => array("Bacardi", "Barloni"),
    "C" => ... ,
    ...
)
于 2013-03-08T09:05:18.613 回答
0

您可以使用这样的 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 />';
}
于 2013-03-08T09:09:35.657 回答