【问题标题】:MySQLi/PHP Search engine doesn't workMySQLi/PHP 搜索引擎不工作
【发布时间】:2013-04-24 15:51:20
【问题描述】:

到目前为止,我有这个......

<html>
<head>
<title>Search</title>
</head>
<body>
<form method="GET">
<input type="text" size="30" />
</form>

<?php  
$db = "example";  

mysqli_connect("localhost","root","*************");  
mysqli_select_db($db);  
$query = mysqli_query("SELECT * FROM TABLE WHERE search_query = '$q'");  
mysqli_query($query);
$results = mysqli_fetch_array($query);

if($results !=="") {
echo "<a href='$array[0]'>Result 1</a>";
echo "<a href='$array[1]'>Result 2</a>";
// you get the idea
}
?>
</body>
</html>

我想知道为什么 MySQLi 没有返回我在栏中搜索的内容。我手动将数据插入数据库...它只是不工作

【问题讨论】:

    标签: php database search mysqli


    【解决方案1】:

    问题是您在创建数据库连接之前执行查询将其向上移动

    mysqli_connect("localhost","root","*************");  
    mysqli_select_db($db);
    

    然后执行你的查询

    $query = mysqli_query("SELECT * FROM TABLE WHERE search_query = '$q'");  
    $results = mysqli_fetch_array($query);
    

    【讨论】:

      【解决方案2】:

      你还没有给 put 中的文本命名,那么“$q”是从哪里来的?

      您没有在第二次执行时检查 $_GET['name'] 是否存在(在他们按下回车键之后)

      查询后您正在连接到数据库

      尝试添加输入名称

      <input type="text" size="30" name="q" />
      

      <?php  
      
      if (array_key_exists('q', $_GET)) {
          ...
          $q = $_GET['q'];
          mysqli_connect("localhost","root","*************");  
          mysqli_select_db($db);  
          $query = mysqli_query("SELECT * FROM TABLE WHERE search_query = '$q'");  
          ...
      }
      

      【讨论】:

      • 谢谢,我还加了“mysql_query($query);”行,以便它实际执行代码
      【解决方案3】:

      首先要打开数据库连接,才能查询数据库本身。

      试试:

      <html>
      <head>
      <title>Search</title>
      </head>
      <body>
      <form method="GET">
      <input type="text" size="30" />
      </form>
      
      <?php  
      $db = "example";  
      /* Open connection */
      mysqli_connect("localhost","root","*************");  
      mysqli_select_db($db);  
      /* Query the DB */
      $query = mysqli_query("SELECT * FROM TABLE WHERE search_query = '$q'");  
      $results = mysqli_fetch_array($query);
      
      
      
      if($results !=="") {
      echo "<a href='$array[0]'>Result 1</a>";
      echo "<a href='$array[1]'>Result 2</a>";
      // you get the idea
      }
      ?>
      </body>
      </html>
      

      【讨论】:

        【解决方案4】:

        您正在使用变量 $q,但您尚未定义它。
        您必须将变量设置为搜索结果的值,例如:

        $q = $_GET['searchvalue']
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-08-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-09-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多