php从数据库读取出的内容如何从重排列

因为我把所有的评论都放在一个表里面,所以读出来的时候ID的顺序都不是按有规律的排,然后我就这样想,首先从数据那里读出共有几条内容,然后用for控制次数把他赋值到数值里面,但是在显示的时候,第一分页就可以按1,2,3这样,但是到第二分页就读不到内容了。
$cha_tid_hiu_query=$mysql->select_query("`$w_db_table[6]` where `f_id`='$cha_tid_fetch[id]' order by `id` $desc_asc limit $page $pagesize ");

while($cha_tid_hiu_array=$mysql->fetch_array($cha_tid_hiu_query)) {
$cha_tid_hiu_fetch_array[]=array
(

"id" =>"$cha_tid_hiu_array[id]",
);
$smarty->assign("cha_hiu_fetch",$cha_tid_hiu_fetch_array);
{section name=pp loop=cha_hiu_fetch}
{$cha_hiu_fetch[pp].id}//重点在这里,这里读出来的内容id是:1,6,8,10这里共有4个数,如果我这样显示就会变成这样“第3楼”,“第6楼”,“第8楼”,“第10楼“。我想变成像论坛那些是按1,2,3,4这样排下去的
{/section}

第1个回答  2011-05-01
$cha_tid_hiu_query=$mysql->select_query("`$w_db_table[6]` where `f_id`='$cha_tid_fetch[id]' order by `id` $desc_asc limit $page $pagesize ");

问题出现在 limit 限制了查询的条数

正确的是应该限制查询的 起 和 止

增加2个变量 $pagestart $pagend 以及当前的第n页 $page 以及每页显示的条数 $pagesize. 用公式计算出 $pagestart $pagend就可以了

看示例
mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15
//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:
mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.
//如果只给定一个参数,它表示返回最大的记录行数目:
mysql> SELECT * FROM table LIMIT 5; //检索前 5 个记录行
//换句话说,LIMIT n 等价于 LIMIT 0,n。
第2个回答  2011-05-01
首先你要select * from album where uid=YourID
然后用while循环输出,应该是echo吧
sql="select * from album where uid=YourID"
输出<select>
while循环
在循环内部输出<option>title</option>
输出</select>
大概其是这样,你调试下
第3个回答  2011-05-01
首先你要select * from album where uid=YourID
然后用while循环输出,应该是echo吧
sql="select * from album where uid=YourID"
输出<select>
while循环
在循环内部输出<option>title</option>
再输出</select>

貌似是这样,你试一下吧!
第4个回答  2011-05-01
while之前初始一个变量,然后增加一个值到数组,模板调用它:

$n = 1;
while($cha_tid_hiu_array=$mysql->fetch_array($cha_tid_hiu_query)) {
$cha_tid_hiu_fetch_array[]=array
(

"id" =>"$cha_tid_hiu_array[id]",
"n" =>$n

);
$n++;
}追问

但是分页的第2页的时候还是由1开始。

本回答被提问者采纳
相似回答
大家正在搜