我正在动态构建mysql查询。它工作正常。问题在于该查询我想添加datediff函数或之间。因此,当用户选择显示数据超过10,15,30天时。它会相应地显示数据。
这是我目前正在使用的代码。
// both arguments should match to just set the cursor position
textview.SetSelection(1,1);
根据我的理解,我需要在这里更改代码。
<?php
require_once 'include/db.php';
$firstname = 'Alpha';
$lastname = 'Romeo';
$older_than = 30;
$query = "SELECT fname,lname,uid,join_date FROM users";
$cond = array();
$params = array();
if (!empty($firstname)) {
$cond[] = "fname = ?";
$params[] = $firstname;
}
if (!empty($lastname)) {
$cond[] = "lname = ?";
$params[] = $lastname;
}
if (!empty($older_than)) {
$cond[] = "join_date = ?";
$params[] = $older_than;
}
if (count($cond)) {
$query .= ' WHERE ' . implode(' AND ', $cond);
}
echo $query;
$stmt = $mysqli->prepare($query);
$bind = array();
foreach($params as $key => $val){
$bind[$key] = &$params[$key];
}
$types = str_repeat("s", count($params));
array_unshift($bind, $types);
call_user_func_array(array($stmt, 'bind_param'), $bind);
$stmt->execute();
$stmt->bind_result($fname, $lname, $uid,$older_than);
while ($stmt->fetch()) {
echo $fname, $lname, $uid,$older_than;
}
?>
请告诉我这个。
答案 0 :(得分:1)
使用DATE_SUB
和<
。
if (!empty($older_than)) {
$cond[] = "join_date < DATE_SUB(NOW(), INTERVAL ? DAY)";
$params[] = $older_than;
}