Я хотел бы сделать подготовленный оператор для динамического SQL-оператора, который зависит от решения пользователя.Поэтому я не знаю заранее, как это будет выглядеть.Я не могу сделать «шаблон» для него заранее.Например:
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$conn = new mysqli('localhost','root','','test');
if (isset($_POST['submit'])){
$build = "";
if(!empty($_POST['city'])){
$city=$_POST['city'];
$build.= "AND city= $city ";
}
if(!empty($_POST['type'])){
$type=$_POST['type'];
$build.= "AND type = $type ";
}
$build= substr_replace($build,'',0,3);
$sql = "SELECT * FROM proizvodi WHERE $build";
$search=$conn->query($sql);
$num = $search->num_rows;
if($num>0){
echo "<table>";
while($row = $search->fetch_object()){
echo "<tr>";
echo "<td>".$row->name."</td>";
echo "<td>".$row->surname."</td>";
echo "<td>".$row->price."</td>";
echo "</tr>";
}
echo "</table>";
}
}else{
echo "Put some value";
}
?>
<form action="" method="post">
<input type="text" name="house" id="city"/>City
<input type="text" name="flat" id="type"/>Type
<input type="submit" name="submit" id="submit" value="Submit"/>
</form>
У меня есть несколько идей сделать оператор подготовки для каждой строки $ build, но я не уверен, что это нормально, и что если, например, у меня есть десятки возможных пользовательских вводов,Это было бы слишком много кода.Есть ли более элегантный способ сделать это?Спасибо!