【问题标题】:PHP Search function breaks my websitePHP 搜索功能破坏了我的网站
【发布时间】:2018-04-18 10:10:38
【问题描述】:

我正在尝试在我的网站中实现搜索功能。 搜索栏将在导航栏的模态屏幕中访问 它用于从 mySQL 表中搜索和检索记录。

实际的搜索功能是通过使用 PHP 的 require 函数以及使我的站点正常工作的所有其他常用函数从外部文件调用的。 问题在于,只要简单地添加这个函数,我就不再显示了——它只是白色的空白。

这里是搜索功能(目前在制品)...

function search_requests {
        global $db;

        $sql = "SELECT * FROM requests ";
        $sql .= "WHERE title LIKE '%".$query."%'";
        $result = mysqli_query($db, $sql);
        confirm_result_set($result);
        return $result;
    } 

我确信仅此一项就会导致我的网站崩溃,因为每当我删除它时,网站就会重新开始工作。

为了让您了解其工作原理的更多背景信息,以下是网页中的一些代码,应该显示通过搜索功能检索到的记录。

$query = $_GET['searchby'];
$request_set = search_requests();

这里是包含搜索模式菜单的 PHP 文件中的代码,它也可以通过 require 函数检索。

<form class="form-signin" action="search.php" method="get">
   <input type="search" name="searchby" value="" placeholder="Ask a question...">
   <input type="submit" value="Ask">
</form>

那么我哪里做错了? 请有人告诉我。

【问题讨论】:

  • function search_requests{改成这个function search_requests (){
  • 你应该在 search_requests() 中传递 $query 中的查询并进入函数调用
  • 成功了。谢谢你。我有一个非常糟糕的习惯,就是在不注意的情况下遗漏一些小而简单的东西。
  • 我将停止使用global 并将数据库连接作为参数传递。
  • 以下:$sql .= "WHERE title LIKE '%".$query."%'"; 可以写成:$sql .= "WHERE title LIKE '%$query%'";,变量在双引号内展开。请花一些时间学习如何调试 php 代码。首先在脚本顶部添加ini_set('display_errors', 1); ini_set('display_startup_errors', 1);error_reporting(E_ALL);,它会输出什么?您的问题的解决方案很简单:只需为您的函数提供一个参数。

标签: php mysql function search full-text-search


【解决方案1】:

您应该在将函数定义为名为@9​​87654323@的函数时添加括号()

      function search_requests($query) {        
        $sql = "SELECT * FROM requests ";
        $sql .= "WHERE title LIKE '%".$query."%'";
        $result = mysqli_query($db, $sql);
        confirm_result_set($result);
        return $result;
    } 

$query = $_GET['searchby'];
$request_set = search_requests($query); //pass $query in a function call

请阅读这篇文章https://www.w3schools.com/php/php_functions.asp

【讨论】:

    【解决方案2】:

    您应该在调用函数中传递值:

    $query = $_GET['searchby'];
    $request_set = search_requests($query);
    

    那你应该在定义函数和传值的时候加上括号():

    function search_requests($query) { 
      //do
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-13
      • 1970-01-01
      • 2019-01-14
      • 1970-01-01
      • 2014-08-25
      • 2016-06-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多