我的代码是
function lister($a,$con){
$queryq = " SELECT * FROM note WHERE date= MAX(date) AND id='".$a."' AND admin='".$_SESSION['login_username']."' ";
$resultq = mysqli_query($con,$queryq) or die('Error: ' . mysqli_error($con));
$arrayq=mysqli_fetch_array($resultq,MYSQL_NUM); {
echo $arrayq[4];
}
}
有一个错误:
错误:无效使用群组功能
我做错了什么?
答案 0 :(得分:0)
尝试拆分查询
$queryA = "SELECT date FROM `note` WHERE id='".$a."' AND admin='".$_SESSION['login_username']."' ORDER BY date DESC LIMIT 1";
$resultA = mysql_query($con, $queryA);
$maxDatePerUser = mysql_fetch_array($resultA);
$queryq = " SELECT * FROM note WHERE id='".$a."' AND admin='".$_SESSION['login_username']."' AND date='" . $maxDatePerUser["date"] ."'";
$resultq = mysqli_query($con,$queryq) or die('Error: ' . mysqli_error($con));
$arrayq=mysqli_fetch_array($resultq,MYSQL_NUM); {
答案 1 :(得分:0)
问题是由各种循环引用引起的。
SELECT * FROM note WHERE date= MAX(date) AND id='".$a."' AND admin='".$_SESSION['login_username']."' "
你要求函数根据同样的事情来计算某些东西 - 语句的条件是MAX(日期),但是在它知道它是什么之前它无法计算。
最佳解决方案是分别找到MAX(日期):
SELECT max(date) FROM note
如果必要,您可以添加其他限制,如果它是最大日期WHERE,即
SELECT max(date) FROM note WHERE id='".$a."' AND admin='".$_SESSION['login_username']."' "
一旦你有了这个,你可以在查询中弹出它:
SELECT * FROM note
WHERE date = (SELECT max(date)
FROM note
WHERE id = '" . $a . "'
AND admin = '" . $_SESSION['login_username'] . "')
AND id = '" . $a . "'
AND admin = '" . $_SESSION['login_username'] . "';
很难在没有要测试的数据的情况下100%正确地进行查询,但这应该有效。