Mysql подготовил заявление, как вопрос - PullRequest
0 голосов
/ 08 февраля 2019


Я пытаюсь создать форму поиска в режиме реального времени, где всякий раз, когда пользователь вводит букву, вызывается функция ajax и выполняется поиск в базе данных результатов

Ajax вызывается успешно, но моя единственная проблема заключается в том, чтомой запрос работает так, как будто это WHERE col = значение, а не как, я должен ввести полное имя col, чтобы получить результат, иначе я не получу никакого результата.

Вот мой код php:

if (isset($_POST['search'])) {
$tagname = $_POST['search'];
$mysqli->set_charset('utf8');
$stmt = $mysqli->prepare("SELECT *,(SELECT COUNT(tagid) FROM sectags WHERE sectags.tagid = tags.tagid) FROM tags WHERE tag LIKE ?");
$stmt->bind_param('s', $tagname);
$stmt->execute();    // Execute the prepared query.
$stmt->store_result();
$stmt->bind_result($id, $tag, $imghref, $tagcount);
echo '<ul>';


while ($stmt->fetch()) {
    ?>
    <!-- Creating unordered list items.
         Calling javascript function named as "fill" found in "script.js" file.
         By passing fetched result as parameter. -->
    <li onclick='fill("<?php echo $tag ?>")'>
        <a>
            <!-- Assigning searched result in "Search box" in "search.php" file. -->
            <?php echo $tag; ?>
    </li></a>
    <?php
}
?>
</ul>
<?php
}


Другие выбранные параметры из базы данных будут использованы позже.
Спасибо.

1 Ответ

0 голосов
/ 08 февраля 2019

Вам необходимо включить символы подстановки в значение, которое вы привязываете к параметру, чтобы LIKE работал правильно, например,

$tagname = '%' . $_POST['search'] . '%';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...