2012-02-22 130 views
-2

我之前問過類似的問題,但沒有全部事實。我將如何修改此查詢以篩選出當前日期之前的所有日期?SQL過濾日期

$result = $wpdb->get_results("SELECT * FROM wp_location_date WHERE location=$id ORDER BY location_date"); 

完整的(ish)代碼在WordPress的function.php文件中。

add_action('wp_ajax_nopriv_fetch_dates', 'get_location_date'); 
add_action('wp_ajax_fetch_dates', 'get_location_date'); 
function get_location_date() { 
global $wpdb; 
ob_clean(); 
$id = $_POST['id']; // Get the Request Id; 

$result = $wpdb->get_results("SELECT * FROM wp_location_date WHERE location=$id ORDER BY location_date"); 
foreach ($result as $value) { 
    $option .= '<option value="'.$value->id.'">'; 
    $option .= $value->date_coment; 
    $option .= '</option>'; 
    } 
echo '<option value="0" selected="selected">Select Date</option>'.$option; 

感謝您的幫助提前。

+1

你的問題是什麼? – muratgu 2012-02-22 00:26:14

+0

我*認爲*他們的問題是如何調整查詢來篩選出日期早於今天的記錄。 (發佈修改後的帖子使其更加清晰) – Leigh 2012-02-22 03:47:33

回答

1
$result = $wpdb->get_results("SELECT * FROM wp_location_date WHERE location=$id and location_date >= curdate() ORDER BY location_date"); 

在附註中,請不要在SQL查詢中使用原始用戶輸入!使用對字符串和整數INTVAL mysql_real_escape_string,如

$id = intval($_POST['id']); 

$result = $wpdb->get_results('SELECT * FROM wp_location_date WHERE location="'.mysql_real_escape_string($id).'" and location_date >= curdate() ORDER BY location_date'); 
1

什麼location_date的數據類型? 你可以試試這個:在MySQL Reference Guide

$result = $wpdb->get_results("SELECT * FROM wp_location_date WHERE location=$id AND location_date > current_date - 1 ORDER BY location_date"); 

更多信息。