【发布时间】:2014-11-06 06:57:14
【问题描述】:
我想显示我的产品列表如下:
Sr.No | Name | Type
--------------------
1 | aa | 2
2 | bb | 2
3 | cc | 3
4 | dd | 2
5 | cc | 4
但它的到来如下
Sr.No | Name | Type
--------------------
3 | aa | 2
5 | bb | 2
1 | cc | 3
4 | dd | 2
2 | cc | 4
当有任何新条目时: 但它的到来如下
Sr.No | Name | Type
--------------------
4 | aa | 2
5 | bb | 2
2 | cc | 3
6 | dd | 2
3 | cc | 4
1 | ec | 5 // this below are two new entry made
7 | fc | 4
以上应该如下:
Sr.No | Name | Type
--------------------
1 | aa | 2
2 | bb | 2
3 | cc | 3
4 | dd | 2
5 | cc | 4
6 | ec | 5 // this below are two new entry made
7 | fc | 4
这不是我想要按名称排序,我只想要正常的 Sr.No 根据条目.. 意味着如果我先添加任何条目然后 Sr.No 1、2、3 等等..
但是当我添加任何新条目时,它的 Sr.No 会被更改,但它应该是最后一个 sr.no
以下是我尝试过的:
SELECT (@cnt := @cnt + 1) AS rowNumber, orn.name, orn.type , u.*
FROM ofr AS u
CROSS JOIN (SELECT @cnt := 0) AS dummy
LEFT JOIN or_name AS orn ON u.id=orn.id
GROUP BY u.id ORDER BY rowNumber AND u.add_datetime DESC
请注意 (@cnt := @cnt + 1) AS rowNumber 正在生成序列号,并且此值在 $cols "Sr.No" 下传递.. Sr.No 是列名,仅此而已.. . 它的值来自“rowNumber”
列表调用方式如下:
$result = get_details()
$cols = array(
_("Sr.No.")=>array('align'=>'center'),
_("Name")=>array('align'=>'center'),
_("Type")=>array('align'=>'center')
);
$table =& new_db_pager('tablename', $result, $cols, 'ofr','id',10);
$table->width = "95%";
display_db_pager($table);
数据库:
id : bigint(20) UNSIGNED No None AUTO_INCREMENT
注意:以上格式来自http://frontaccounting.com/ 演示链接:http://demo.frontaccounting.eu/
【问题讨论】:
-
试试 -
ORDER BY rowNumber, u.add_datetime DESC -
嘿,这也是对的 .. 但是序列号没有正确出现 .. 我的意思是它不是按照添加的日期 .. 当我添加任何新条目然后 sr.no 得到更改 .. 但它不应该发生..好像我添加了任何新条目然后分配给新条目的 sr.no 应该是最后一个 sr.no +1 ...但它不工作得到改变
-
你也可以用php来做。
-
我知道 count , count++ 在 while 循环中......但在这里我没有使用任何 while 循环来列出其标准格式:demo.frontaccounting.eu 在数组分页中调用......并且没有得到我如何在其中构建相同的内容
-
你传递的是
$result中的数据,按需生成即可。
标签: php mysql numbers number-formatting serial-number