Получаю содержимое формы PHP: $street = $_POST['street']; $number = $_POST['number']; Далее вывожу его PHP: echo "<h2>Найдено ".$counter." объектов по адресу ".$street." ".$number."</h2>"; И наконец подставляю в SQL запрос... PHP: $sql3 = mysqli_query($database, 'SELECT * FROM realestate WHERE street='.$street.' AND housenumber='.$number.' ORDER BY eid DESC'); Но запрос не срабатывает! Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /home/stoliza/icrm.nasha-stolica.com/html/search-object.php on line 47 Пробовал вставлять в запрос не переменные, а тестовые значения. При цифровых работает, при буквенных (кириллица) - не работает. ПОЧЕМУ?
потому что ошибка в запросе и дескриптора соединения с БД просто нет. Отсюда и "expects parameter 1 to be mysqli_result" Возьмите за правило сохранять запрос в отдельную переменную (а не пхать его сразу в mysqli_query()), для того что бы всегда его можно было вывести на экран и посмотреть что с ним не так.
В street, видимо, строка. Где кавычки в запросе вокруг значения этого параметра? Существование POST-параметров нужно проверять, прежде чем их использовать. И срочно читаем про SQL-инъекции (и про то, как с ними можно бороться). --- Добавлено --- Не. Сначала все запросы, а потом уже вывод.
не важно что это кириллица, важно что там тип данных строковый . В sql запросах строковые значения должны в кавычках.
Спасибо, работает Я имел в виду вывод данных для проверки, неправильно выразился --- Добавлено --- Да, строка, спасибо! SQL инъекций не боюсь т.к. система для внутреннего использования --- Добавлено --- Модераторы, удалите вложение пожалуйста, спасибо Тему можно закрыть