谁能告诉我如何解决这个问题?
我想从我的SHOUTBOX表中按id调用前50行,但在div中按升序显示它们(最新的行(最新的)在底部)
例如,
最近的行是id 200,我把150 - 200行命名为,将它们显示在div中,如;
150年,151年,152年,..等..200 & lt; & lt; & lt;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
供将来参考,如果您正在转换为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
好的,试试这个:
$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");
将ORDER BY id DESC
替换为ORDER BY id
您输入了错误的命令,您必须输入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>";
}
将查询改为:
$recall = mysql_query("SELECT *, DATE_FORMAT(timepost,'%H:%i:%s') as timepost
FROM shoutbox ORDER BY id ASC LIMIT 50");