Вот такой простой код для реализации поиска. Всё нормально работает, кроме одного: не выводит сообщение, при отсутствии в БД информации («По вашему запросу ничего не найдено»). В чём может быть проблема?
Вот моё поделие:
<?php
// Поиск статей
$search = $_GET['search'];
echo '
<form method="GET">
<input type="text" name="search" required="required" placeholder="Поиск" />
<input type="submit" name="submit" value="Найти" />
</form>
';
$db = new SQLite3(DB_NAME);
$search = trim($search);
$search = strip_tags($search);
$results = $db->query("SELECT * FROM articles WHERE title LIKE '%$search%' OR content LIKE '%$search%'");
$numRows = count ($results);
if(empty($search)) {
echo articles();
}
elseif(strlen($search) <= 3) {
echo 'Слишком короткий термин (не менее 3 символов)';
}
elseif($numRows > 0) {
while ($row = $results->fetchArray()) {
echo 'По запросу ' . $search . ' найдено ' . $numRows . ' совпадений.<br />id: ' . $row['id'] . '<br /> Дата и время: ' . $row['datetime'] . '<br /> Заголовок: ' . $row['title'] . '<br /> Категория: ' . $row['category'] . '<br /> Контент: ' . $row['content'] . '<br />';
}
}
else {
echo 'По вашему запросу ничего не найдено';
}
$db->close();
?>
Потому что $db->query(..) возвращает объект , класса SQLite3Result . А в php функция count корректно применяется для объектов, только имеющих интерфейс Countable (SQLite3Result не имплементирует этот интерфейс) . Заметка по count c php.net:
Возвращает количество элементов в array_or_countable. Если параметр не является массивом или объектом, реализующим интерфейс Countable, будет возвращена 1
При анализе ошибок надо знать, что магии не бывает, и условный оператор не может не работать.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
нужно, заполнив форму обратной связи,занести в бд и отослать информацию на почтупомогите найти ошибку
Parse error: syntax error, unexpected end of file in C:\OSPanel\domains\Crypto\includes\articlephp on line 8
Пыталась сделать вывод данных в CSV-файл, но данные выводятся в одну ячейкуВопрос: как сделать так, чтобы данные выводились в отдельные ячейки?...
Решил установить новую версию MPDF, раньше я тупо подключал файл include("MPDF56/mpdfphp"); и все работало, сейчас в мануэле пишут это