php - 如何在php中获取搜索结果

标签 php mysql

当我通过查询时,我无法从数据库中获取结果。我的问题是当用户在 input 上输入一些值时,它会将值传递给操作。但是我的功能不起作用。并通过以下错误:

Fatal error: Call to a member function fetch_assoc() on boolean in D:\e.batgerel\development\projects\travelagency\includes\functions.php on line 409

这是我的代码示例:

<form action="search.php?search=<?php echo $_GET['search']; ?>" method="GET">
    <input type="text" name="search" placeholder="Хайлт хийх" aria-label="search_input"/ >
    <button type="submit">
       <i class="fa fa-search"></i>
    </button>
</form>

还有我的search.php:

<?php require_once 'includes/config.php';

    if(isset($_GET['search'])) {
      $search = $_GET['search'];
      search($search);
    } else {
      header('Location: index.php');
    }
?>
<?php include 'layouts/header.php'; ?>
<?php include 'layouts/footer.php'; ?>

和函数:

function search($search) {
    global $conn;

    $sql = "SELECT * FROM travels WHERE title LIKE '%$search%' OR description LIKE '%$search%'";

    $result = $conn -> query($sql);
    $list = array();

    while($row = $result->fetch_assoc()) {
        $list[] = $row;
    }
    return $list;
}

有什么解决办法吗?我做错了什么 ?谢谢。

最佳答案

mysqli::query 在失败时返回 FALSE: http://php.net/manual/en/mysqli.query.php#refsect1-mysqli.query-returnvalues

因此,您需要先确保结果不为 FALSE:

if ($result = $conn->query($sql)) {
    // here result processing
} else {
    // here error handling
}

关于php - 如何在php中获取搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52893746/

相关文章:

PHP mysql查询没有提供额外的输出

php - 如何在 cakephp 树中订购项目

php - 如何显示带有多个复选框的div

php - 文本未提交至数据库

mysql - VIEW 中的 SQL 多个 SELECT 语句

php - 资源访问锁PHP

mysql - 有没有办法让MySQL更详细地解释语法错误?

php - 使用 php 和 mysql 构建网站的更有效方法(兑现还是查询?)

java - 如何使用 MySQL 表中的 blob 填充 JLabel

php - 对多个 join 语句的结果进行排序的最佳方法