Я пытаюсь сделать простой поисковик. Моя проблема в том, что каждый код, который я пробую, приносит мне один и тот же результат: «Найдено 0 результатов». Моя база данных заполнена, и когда я помещаю в нее свой SQL-запрос, он возвращает мне результат, который я ищу.
Я пробовал этот код также из stackoverflow PHP скрипт поисковой системы это вернуло 1 результат для человека, задающего этот вопрос, и все, что я получаю, это сообщение «Извините, нет подходящих результатов». Чтобы написать этот код, я пошагово пошёл по руководству youtube за phpacademy, и снова произошло то же самое. Я прочитал все комментарии под руководством, чтобы узнать, сталкивался ли кто-нибудь с такой же проблемой, но она отлично работала для всех. Я понятия не имею, что я делаю неправильно, и буду очень признателен, если кто-нибудь сможет мне помочь.
Это форма из моего файла HTML:
<body>
<form action="eatsearch.php" method="get">
<label>
Search
<input type="text" name="keywords" placeholder = "Type to search..">
</label>
<input type="submit" value="Search">
а это мой php:
<?php
require_once('config.php');
if(isset($_GET['keywords'])) {
$keywords = $connect->escape_string($_GET['keywords']);
$query = $connect->query("SELECT rname, tel, url, food
FROM general WHERE food LIKE '%{keywords}%'");
?>
<div class="result-count">
Found <?php echo $query->num_rows; ?> results.
</div>
<?php
if($query->num_rows) {
while($result = $query->fetch_object()) {
?>
<div class = "result">
<a href="#"><?php echo $result->rname;?></a>
</div>
<?php
}
}
}
?>
Ключевые слова без $?
Положить $ ключевые слова
Ваша ошибка здесь:
$query = $connect->query("SELECT rname, tel, url, food FROM general WHERE food LIKE '%{keywords}%'");
Так должно быть:
$query = $connect->query("SELECT rname, tel, url, food
FROM general WHERE food LIKE '%{$keywords}%'");
Вы забыли свой $
знак перед keywords
переменная.