我想从表中获取最后一个日期。所以我可以显示最后添加或更改的项目:
$qry = "
Select
MAX(changedate)
FROM
producten
";
$stmt = $connection->prepare($qry);
$stmt->error;
$stmt->execute();
$result = $stmt->get_result();
$up = $result->fetch_assoc();
$stmt->close();
$main .='Last update '.$up['changedate'];
但我收到此错误消息:
注意:未定义的索引:在第22行/home/jcslnl/domains/jcsl.nl/public_html/michael/paginas/home.php中更改
这是因为MAX不再受支持吗?或者我应该继续搜索错误吗?
也可能是我在表中做错了,这是我第一次使用时间戳i.s.o. unix时间戳。
答案 0 :(得分:2)
聚合函数将在mysql中工作,与sql标准不同。要从php访问MAX(已更改)的值,您必须使用别名:像这样
Select
MAX(`changedate`) as cngdate
FROM
your_table
答案 1 :(得分:1)
你的问题的答案是 是的,mysqli支持MAX 。但是,您需要为列添加别名,因为您实际上并未选择列 changedate
,而是选择changedate
值的函数的结果。在这种情况下,SELECT MAX(changedate) as changedate
会为您提供所需的结果。
您还可以使用var_dump($up);
在结果中更清楚地看到这一点。
答案 2 :(得分:1)
的print_r($向上)
为什么猜测它被命名为不同的东西。所以只需在查询中命名
Select max(changedate) as maxdate
然后在输出中使用$ up ['maxdate']。
答案 3 :(得分:1)
在execute语句后添加$stmt->bind_result($changedate);
。即。
$qry = "
Select
MAX(changedate)
FROM
producten
";
$stmt = $connection->prepare($qry);
$stmt->error;
$stmt->execute();
$stmt->bind_result($changedate);
$stmt->close();
$main .='Last update '.$changedate;
答案 4 :(得分:1)
列结果实际上是MAX(changedate)
,即$up['MAX(changedate)']
但是为了使其更具可读性,您应该使用别名进行选择
Select
MAX(changedate) as changedate
FROM
producten
并使用相同的$up['changedate']
。
答案 5 :(得分:0)
您必须为MAX函数的结果添加别名
SELECT MAX(changedate) AS maxdate
FROM producten