有人可以就如何解决这个问题提出建议吗?
我想从我的SHOUTBOX表中按id调用前50行,但是按升序显示div(最近一行(最新)在底部)
例如;
最近一行是id 200, 我想打电话给150 - 200行, 在div中显示它们;
150 151, 152, 。 。 。等等 。 。 200<<< DIV的最后一行
我的PHP代码目前看起来像这样;
$recall=mysql_query("SELECT *, DATE_FORMAT(timepost,'%H:%i:%s') as timepost FROM shoutbox ORDER BY id DESC LIMIT 50");
while($comm=mysql_fetch_object($recall)){
if ($comm->poster == "System"){
print"<font color=#3399FF>$comm->timepost-<strong><a href='profile.php?viewuser=$comm->poster' target='iframecontent'><font color=#3399FF>$comm->poster</font></a></strong>: </font>";
echo replace($comm->post);
echo"<br>";
}
但它会在div中返回我的数据;
200, 199, 198, 。 。 。等等 。 。 150&lt;&lt;&lt; DIV的最后一行
请有人帮忙吗?
注意:我目前正在处理所有页面并将所有mySQL查询转换为PDO
答案 0 :(得分:1)
将ORDER BY id DESC
替换为ORDER BY id
答案 1 :(得分:1)
为了将来参考,如果您要转换为PDO,则可以在不更改查询的情况下向后阅读此页面。 http://www.php.net/manual/en/pdostatement.fetch.php
现在这将起作用:
SELECT *, DATE_FORMAT(timepost,'%H:%i:%s') AS timepost FROM (SELECT * FROM shoutbox ORDER BY id DESC LIMIT 50) AS foo ORDER BY id ASC
答案 2 :(得分:1)
好的,试试这个:
$recall=mysql_query("SELECT *, DATE_FORMAT(timepost,'%H:%i:%s') as timepost FROM (SELECT * FROM shoutbox ORDER BY id DESC LIMIT 50) ORDER BY id ASC");
答案 3 :(得分:0)
订单命令错误,您必须放ASC
而不是DESC
这是您的正确查询:
$recall=mysql_query("SELECT *, DATE_FORMAT(timepost,'%H:%i:%s') as timepost FROM shoutbox ORDER BY id ASC LIMIT 50");
while($comm=mysql_fetch_object($recall)){
if ($comm->poster == "System"){
print"<font color=#3399FF>$comm->timepost-<strong><a href='profile.php?viewuser=$comm->poster' target='iframecontent'><font color=#3399FF>$comm->poster</font></a></strong>: </font>";
echo replace($comm->post);
echo"<br>";
}
答案 4 :(得分:0)
将您的查询更改为:
$recall = mysql_query("SELECT *, DATE_FORMAT(timepost,'%H:%i:%s') as timepost
FROM shoutbox ORDER BY id ASC LIMIT 50");