$option_meno = ["Lukas", "Ivka"];
$sql = "SELECT *
FROM uctovnictvo
WHERE meno IN ('$option_meno[1]', '$option_meno[0]')
AND datum BETWEEN '$date_start' AND '$date_end'
ORDER BY $order ";
肯定有一个更好的方法来选择用户基于名称(meno
)。在$option_meno
数组中可以有更多或更少的名称。
我想使这比列出选项数组('$option_meno[1]','$option_meno[0]')
中的每个索引更简单。
您可以使用一些数组函数来自动生成正确的IN
语句
$option_meno = ["Lukas","Ivka"];
$in = implode(',', array_map(function($item) use ($pdo) {
return '"' . $pdo->quote($item) . '"';
}, $option_meno);
$sql = "SELECT * FROM uctovnictvo WHERE meno IN ($in)...";
代替PDO::quote
,你也可以使用mysqli_real_escape_string
等(取决于你的连接)。
您可以使用implode()
:
$sql = " SELECT *
FROM uctovnictvo
WHERE meno IN ('" . implode(''', ''', $option_meno) . "')
AND datum BETWEEN '$date_start' AND '$date_end'
ORDER BY $order ";