Это мой код Этот SQL-запрос работает правильно в phpmyadmin, он возвращает 2 отеля, как я хотел, но в коде php он возвращает все мои отели. Почему это не работает?
$search_text = "%". $search_text ."%";
$query = "SELECT name,country,province,town FROM Hotel WHERE country LIKE ? OR province LIKE ? OR town LIKE ? OR name LIKE ? ORDER BY name DESC";
$stmt = Database::$connection->prepare($query);
$stmt -> bind_param('ssss',$search_text , $search_text, $search_text, $search_text);
$stmt -> execute();
$result = $stmt -> get_result();
$searched = null;
$count = 0;
while($row = $result -> fetch_array(MYSQLI_NUM)){
$searched[$count][0] = $row[0];
$searched[$count][1] = $row[1];
$searched[$count][2] = $row[2];
$searched[$count][3] = $row[3];
$count++;
}
$stmt-> close();
return $searched;
проверьте ваш код, что они устанавливают значение $ search_text, оно может быть пустым, поэтому он возвращает все строки.
Единственная проблема, которую я вижу, состоит в том, что в вашей строке есть пробелы. Попробуйте удалить его.
$search_text = "%".$search_text."%";
Это также может быть связано с тем, что вам нужно включить апострофы.
$search_text = '"%'.$search_text.'%"';