首页 > 解决方案 > 我的网站搜索查询不起作用

问题描述

在我的网站上,我有一个文件articles.php,上面有一个搜索字段。当我输入信息时,它会将我重定向到正确的search.php,在URL中我可以看到它正在输出我的结果,但它没有在search.php正文上显示我的结果。

在我搜索“你能在 Windows 签证上玩游戏”后,本地主机 URL 正在输出

http://localhost/qaa/search.php?search=Can+you+game+on+widows+vista&submit-search=

这个页面什么都没有,只是一个空框search.php


联系

<?php
$server = "localhost";
$username = "root";
$password = "";
$db = "Qaa";

$conn = mysqli_connect($server, $username, $password, $db);
?>

articles.php "我的搜索栏在哪里"

<?php
include 'connect.php';
?>

<h1>Front Page</h1>
<h2>All articles:</h2>
<link rel="stylesheet" type="text/css" href="css/article.css">
<div class="article-container">

<form action="search.php">
<input type="text" name="search" placeholder="Search">
<button type="submit" name="submit-search">Get answers</button>
</form>

<?php
  $sql = "SELECT * FROM article";
  $result = mysqli_query($conn, $sql);
  $queryResults = mysqli_num_rows($result);


  if ($queryResults > 0){
    while ($row = mysqli_fetch_assoc($result)){
      echo "<div class='article-box'>
      <h3>".$row['a_title']."</h3>
      <p>".$row['a_text']."</p>
      <hp>".$row['a_date']."</p>
      <p>".$row['a_author']."</p>
    </div>";
    }
  }
?>

Search.php "点击'获取答案按钮'后搜索信息应该出现在哪里"

<?php
include 'connect.php';
?>
<link rel="stylesheet" type="text/css" href="css/article.css">
<h1>Search Page</h1>

<div class="article-container">
<?php
if (isset($_POST['submit-search'])){
  $search = mysqli_real_escape_string($conn, $_POST['search']);
  $sql = "SELECT * FROM article WHERE a_title LIKE '%$search%' OR a_text 
LIKE '%$search%' OR a_author LIKE '%$search%' OR a_date LIKE '%$search%'";
  $result = mysqli_query($conn, $sql);
  $queryResult = mysqli_num_rows($result);

  echo "There are ".$queryResult." results!";

  if($queryResult > 0){
    while ($row = mysqli_fetch_assoc($result)){
      echo "<div class='article-box'>
      <h3>".$row['a_title']."</h3>
      <p>".$row['a_text']."</p>
      <hp>".$row['a_date']."</p>
      <p>".$row['a_author']."</p>
    </div>";
    }
  }else{
  echo "There are no results matching your search! Contact our support so 
  we can add this or if you have a result, add it, as a result, using the 
  GIVE ANSWER button!";
  }
  }
  ?>
  </div>

标签: phpsqlsearchmysqli

解决方案


您正在使用$_POST['search']哪个是错误的。因为您的搜索字符串是在 get 方法中提交的。所以你必须使用: -

$_GET['search'] 

请试试这个。


推荐阅读