我试图在MySQL查询中获取变量.
$filter = $_GET['fltr'];
require_once('core/dbconnect.php');
if($filter)
{
$limit = 'LIMIT '. $filter;
}
$lastonline = mysql_query("SELECT * FROM logins ORDER BY time DESC GROUP BY username '$limit'");
Run Code Online (Sandbox Code Playgroud)
现在问题出在我在查询中加上'$ limit'的地方.这不起作用,但这样做的正确方法是什么?
它几乎可以正常工作,因为我得到的结果不是绝对正确的结果.我将代码更改为:
$filter = $_GET['fltr'];
require_once('core/dbconnect.php');
if($filter)
{
$limit = 'LIMIT '. (int) $filter;
}
$lastonline = mysql_query("SELECT * FROM logins GROUP BY username ORDER BY time DESC {$limit}");
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我不得不改变GROUP BY和ORDER BY,因为它不起作用.我确实把它按顺序放入原因,因为现在它首先按用户名分组,但不再进行最后一次登录.
知道此查询中最后一个问题的解决方案的任何人?
感谢您的所有帮助!
一些东西:
int;结果将是:
if($filter)
{
$limit = 'LIMIT '. (int) $filter;
}
$lastonline = mysql_query("SELECT * FROM logins GROUP BY username ORDER BY time DESC {$limit}");
Run Code Online (Sandbox Code Playgroud)
并且您应该切换到PDO或mysqli并准备好语句,因为mysql_*函数已被弃用.
编辑:根据手册,扩展第4点:
通常,使用的子句必须完全按照语法描述中显示的顺序给出.例如,HAVING子句必须位于任何GROUP BY子句之后和任何ORDER BY子句之前.
所以ORDER BY来了GROUP BY.
| 归档时间: |
|
| 查看次数: |
401 次 |
| 最近记录: |