带有分页代码的搜索结果获胜';t返回结果


Search results with pagination code won't return results

我很难用分页代码来获得这些搜索结果。它确实成功地抓取了在另一个页面的html表单中输入的搜索关键字,并将其带入这个search.php页面。如果我回显$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;
    }
}
$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);

在您的查询中do:

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

而不是:

WHERE stories.genre = 'string');

因为相等的人想要真正地等于这个场。