$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]')
中的每个索引更简单。
答案 0 :(得分:2)
您可以使用一些数组函数自动生成正确的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
等等(取决于您的连接)。
答案 1 :(得分:1)
您可以使用implode()
:
$sql = " SELECT *
FROM uctovnictvo
WHERE meno IN ('" . implode('\', \'', $option_meno) . "')
AND datum BETWEEN '$date_start' AND '$date_end'
ORDER BY $order ";