Результаты поиска с кодом нумерации страниц не возвращают результаты

0

Мне трудно получить результаты поиска с использованием кода разбивки на страницы. Он успешно захватывает ключевое слово поиска, введенное в форме html на другой странице, и выводит его на эту страницу search.php. if я echo $ search Я вижу ключевое слово на странице. Но я не получаю никаких результатов, хотя я должен это сделать. Может ли кто-нибудь увидеть, что может быть?

require "PDO_Pagination.php";

if(isset($_REQUEST["search_text"]) && $_REQUEST["search_text"] != "")
{

    $search = htmlspecialchars($_REQUEST["search_text"]);
    $pagination->param = "&search=$search";
    echo $search;

    $pagination->rowCount("SELECT * FROM stories WHERE stories.genre = $search");
    $pagination->config(3, 5);
    $sql = "SELECT * FROM stories WHERE stories.genre = $search ORDER BY SID ASC LIMIT $pagination->start_row, $pagination->max_rows";
    $query = $connection->prepare($sql);
    $query->execute();
    $model = array();

    while($rows = $query->fetch())
    {
        $model[] = $rows;
    }
}
else
{
    $pagination->rowCount("SELECT * FROM stories");
    $pagination->config(3, 5);
    $sql = "SELECT * FROM stories ORDER BY SID ASC LIMIT $pagination->start_row, $pagination->max_rows";
    $query = $connection->prepare($sql);
    $query->execute();
    $model = array();

    while($rows = $query->fetch())
    {
        $model[] = $rows;
    }
}
  • 0
    Может быть, что-то с WHERE stories.genre = $search"); Конкретно = ? Обычно вам понадобится LIKE .
  • 0
    Спасибо за попытку. Да, у меня изначально было это как = '% $ search%', но это тоже не работало. Никаких результатов. Я только недавно попытался изменить его на = $ search. В любом случае, это не так ...
Показать ещё 2 комментария
Теги:
pdo

2 ответа

0
Лучший ответ
$query = "SELECT * FROM stories";

if(isset($_REQUEST["search_text"]) && $_REQUEST["search_text"] != "")
{
    $search = htmlspecialchars($_REQUEST["search_text"]);
    $pagination->param = "&search=$search";
    $query .= " WHERE genre LIKE '%$search%'";
}
// No need for else statement.
$pagination->rowCount($query);
$pagination->config(3, 5);
$query .= " ORDER BY SID ASC LIMIT {$pagination->start_row}, {$pagination->max_rows}";

$stmt = $connection->prepare($query);
$stmt->execute();
$model = $stmt->fetchAll();
var_dump($model);
  • 0
    Интересно. Было ли это просто еще что-то испортило? Это дает результат в var_dump, хотя он не будет отображаться на странице. Возможно, потому что это, кажется, дублирует результат для каждого vaiable в массиве. Var_dump выглядит следующим образом: массив (1) {[0] => массив (20) {..другие переменные ... ["genre"] => string (7) "Drama" [4] => string (7) «Драма». Так что, может быть, мне просто нужно выяснить, как получить доступ к данным и повторить их сейчас ...
  • 0
    Я получил это: $ модель [0] ['жанр'] для вывода значения
Показать ещё 1 комментарий
0

В вашем запросе выполните:

WHERE stories.genre LIKE '%string%');

вместо:

WHERE stories.genre = 'string');

Потому что равные будут хотеть буквально равным полю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню