2015-01-04 180 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']