2014-05-15 107 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