根据项目的第一个字母列出项目

时间:2013-03-08 08:58:12

标签: php html mysql

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

A

  • Armani的
  • 阿南
  • Aungudo

项目从B开始,

  • 百加
  • Barloni

就像A-Z我需要显示。但我是PHP的新手,并试图创建一个逻辑,但没有任何东西。 所以请任何人帮助我吗?>

先谢谢。

快速回复会很好。

感谢

5 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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明确地按升序排序)

答案 2 :(得分:0)

在mysql查询中尝试命令

SELECT id,name from TABLE order by name asc;

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

答案 3 :(得分:0)

建议采用这种方法:

  1. 首先在mysql中将结果列表排序为@SudipPal建议。
  2. 使用for循环
  3. 遍历已排序的项目
  4. 收集所有'A'并将它们推入一个新的关联数组,key为'A'
  5. 重复其余字母
  6. 你应该得到像这样结构的关联数组:

    array(
        "A" => array("Armani", "Anan", "Aungundo"),
        "B" => array("Bacardi", "Barloni"),
        "C" => ... ,
        ...
    )
    

答案 4 :(得分: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 />';
}