Вы захотите динамически создать запрос из имеющейся у вас информации.
Итак, допустим, вы хотите отфильтровать некоторую таблицу по необязательному минимальному и необязательному максимальному значению.
SELECT some_row
FROM some_table
WHERE filter_row < [max]
AND filter_row > [min]
Простой способ сделать это - просто сохранить часть вашего SQL-запроса, которая фильтруется по максимуму и минимуму, и добавить ее к запросу, когда это необходимо / определено:
$sql = "SELECT some_row
FROM some_table ";
if (isset($max) && isset($min)){
$sql .= "WHERE filter_row < ?
AND filter_row > ?";
} else if (isset($max) ){
$sql .= "WHERE filter_row < ?";
} else if (isset($min) ){
$sql .= "WHERE filter_row > ?";
}
if ($stmt = $mysqli->prepare($sql)) {
// bind parameters according to the given/available
// parameters and execute
}
I'mне уверен, что запрос будет работать, так как у меня нет ничего, чтобы проверить его здесь, но идея должна быть ясна.
Это просто очень простое решение, которое получит очень большой и уродливый срастущий список дополнительных параметров.Так что, если вам это нужно чаще и с большим количеством параметров, попробуйте использовать « Query Builder ».