1
Ich erstelle mysql Abfrage dynamisch. Es funktioniert gut. Problem ist in dieser Frage ich will datediff Funktion oder zwischen hinzufügen. Also, wenn Benutzer wählen zeigen Daten älter als 10,15,30 Tage. es zeigt Daten entsprechend an.mysql datediff: Daten zwischen Tage
Hier ist der Code, den ich im Moment verwende.
<?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;
}
?>
Nach meinem Verständnis muss ich den Code hier ändern.
if (!empty($older_than)) {
$cond[] = "join_date = ?";
$params[] = $older_than;
}
Bitte teilen Sie mir dies mit.
Danke für Ihre Antwort. Lass es mich versuchen. – Ironic