2014-05-15 85 views
-2

在我的db中,名爲'stocksInDate'的列包含Y-m-d g:ia 如何僅在過去30天內調用數據?使用條件調用數據PDO droplist

<select name="openBooks"><option value="">-- Select A Book --</option> 

foreach ($my_connection->query("SELECT col1 FROM books_db WHERE exec_datetime >= DATE_SUB(stocksInDate, INTERVAL 30 DAY) LIMIT 4") as $row){ 
     echo("</option><option value=". $row['col1'] . ">". $row['col1'] ."</option>"); 
     }; 
+0

你現在得到什麼? –

+0

警告:爲foreach提供的無效參數() – user3639986

+0

您無法循環訪問mysqli查詢對象,您必須從queryy對象中獲取數據並將其循環使用 –

回答

0

嘗試

exec_datetime BETWEEN DATE_SUB(DATE_FORMAT(stocksInDate, 'your format'),INTERVAL '30' DAY) 

爲了改變日期的格式: - http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_date-format

而且讓您的查詢結果在一個新的變量,並添加VAR到的foreach,如: -

$rows = $my_connection->query("SELECT col1 FROM books_db WHERE exec_datetime >= DATE_SUB(stocksInDate, INTERVAL 30 DAY) LIMIT 4"); 

if(check num rows > 0) 
    foreach($rows as $row) 
+0

我想根據'stocksInDate'計算30天。不符合當前日期。 – user3639986

+0

然後更改NOW()to stocksInDate –

+0

嗨Rakesh ...我得到這個錯誤foreach()提供的無效參數() – user3639986