2015-01-04 202 views
1

我想从表格中获取最后一个日期。因此,我可以显示最近添加或更改项目:Mysqli在查询中是否支持MAX?

$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']; 

但我收到此错误信息:在/home/jcslnl/domains/jcsl.nl/public_html CHANGEDATE:

注意:未定义指数/michael/paginas/home.php on line 22

这是因为MAX不再支持?还是应该继续搜索错误?

也可能是我在表格中做了错误,这是我第一次使用时间戳i.s.o. unix时间戳。

回答

1

答案你的问题是是的,mysqli支持MAX。但是,您需要别名该列,因为您实际上并未选择changedate,而是选择值changedate的函数的结果。在这种情况下,SELECT MAX(changedate) as changedate可为您提供所需的结果。

您还可以使用var_dump($up);在结果中更清楚地看到这一点。

2

聚合函数将在mysql中工作,与sql标准不同。访问从PHP MAX(CHANGEDATE)的值,你有别名它:这样

Select 
     MAX(`changedate`) as cngdate 
    FROM 
     your_table 
0

您必须添加一个别名MAX函数的结果,

SELECT MAX(changedate) AS maxdate 
FROM producten 
1

的print_r($高达)

为什么猜测是,它被命名为不同的东西。所以只需在您的查询中命名

Select max(changedate) as maxdate 

然后在您的输出中使用$ up ['maxdate']。

1

在执行语句后添加$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; 
1

列结果实际上将MAX(changedate),即$up['MAX(changedate)']
然而,以使其更具可读性,你应该使用别名为您选择

Select 
    MAX(changedate) as changedate 
FROM 
    producten 

,并使用相同$up['changedate']