1
私は動的にmysqlクエリを構築しています。それは正常に動作しています。問題は、そのクエリで私は日付関数または間に関数を追加したいです。したがって、ユーザーが10,15,30日より古いデータを表示する場合。それに応じてデータが表示されます。mysql datediff:日間のデータを取得
ここに私が現在使用しているコードがあります。
<?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;
}
?>
私の理解によれば、ここでコードを変更する必要があります。
if (!empty($older_than)) {
$cond[] = "join_date = ?";
$params[] = $older_than;
}
私にこれについて助言してください。
ご回答ありがとうございます。私が試してみましょう。 – Ironic