需要显示最后5行的帮助。PHP,MYSQL
谁能告诉我我做错了什么。我想按desc顺序显示最后5行需要显示最后5行的帮助。PHP,MYSQL,php,mysql,rows,Php,Mysql,Rows,谁能告诉我我做错了什么。我想按desc顺序显示最后5行 $pull_activity_logs = mysql_query("SELECT * FROM activity_logs WHERE ac_no = '$logined_acc' order by id desc limit 0,5") or die(mysql_error()); while($row = mysql_fetch_array( $pull_activity_logs )) { $activity_ti
$pull_activity_logs = mysql_query("SELECT * FROM activity_logs WHERE ac_no = '$logined_acc' order by id desc limit 0,5")
or die(mysql_error());
while($row = mysql_fetch_array( $pull_activity_logs )) {
$activity_time = $row["datetime"];
$activity = $row["activity"];
}
echo "$activity";
非常感谢您的帮助好吧,您始终可以按asc顺序选择前五个,按desc顺序选择后五个,然后您可以根据需要在php中反转它们的顺序(5个值不是数组无法处理的) 代码: 编辑: 现在当我看到它的时候,也许整个问题都在你的回声的扭曲位置:
$pull_activity_logs = mysql_query("SELECT * FROM activity_logs WHERE ac_no = '$logined_acc' order by id desc limit 0,5")
or die(mysql_error());
while($row = mysql_fetch_array( $pull_activity_logs )) {
$activity_time = $row["datetime"];
$activity = $row["activity"];
echo "$activity"; //this goes INSIDE the loop
}
您可以按升序检索前五个,然后使用子查询在SQL中对它们进行排序:
select al.*
from (SELECT al.*
FROM activity_logs al
WHERE ac_no = '$logined_acc'
order by id asc
limit 0, 5
) al
order by id desc;
我知道这并不能解决您的问题,但我强烈建议您不要使用mysql_query()-就像这里的PHP人员一样:-从PHP 5.5.0开始,它就被弃用了,将来会被删除可能是查询中的输入错误?同时检查$logined_acc是否已定义,查询语法是否正确?我不知道您面临的问题是什么?回显“$activity”;语句在循环之外。您将始终看到最后一个值5。这或在
$activity
上使用串联赋值=
。并在循环之前初始化它。
select al.*
from (SELECT al.*
FROM activity_logs al
WHERE ac_no = '$logined_acc'
order by id asc
limit 0, 5
) al
order by id desc;