0

我刚刚在 PHP 中创建了一个非常简单的搜索功能,但遇到了一些问题。搜索功能向数据库发送查询,并打印结果,但它不打印我想要的结果。它应该打印那些类似于用户输入的记录,但它只打印每条记录。

我的表格如下:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
     <input  type="text" name="name"> 
     <input  type="submit" name="submit" value="Search"> 
</form>

使其搜索的 PHP 代码是:

if(isset($_POST['submit'])) 
    { 
     require ('mysqli_connect.php');
     include ('config.php');

    $term = $_POST['term'];
        $q = "SELECT  name, producer, jamtypes, user FROM Jam WHERE name LIKE '%" . $term .  "%'";
        $sql = @mysqli_query ($dbc, $q);

     while ($row = mysqli_fetch_array($sql)){

        echo "<br />";
         echo 'Name: '.$row['name'];
         echo '<br/> Producer: '.$row['producer'];
         echo '<br/> Created By: '.$row['user'];
         echo '<br/> Category: '.$row['jamtypes'];
         echo '<br/>';

        }
  }

多谢你们

4

1 回答 1

2

你的表单域是name,不是term,所以你的 PHP 应该是

$term = $_POST['name'];

因为$term由于值不正确而为空白,所以您的查询将返回所有结果。(您的查询看起来像SELECT name, producer, jamtypes, user FROM Jam WHERE name LIKE '%&'

仅供参考,打开 error_reporting 并报告通知会告诉你这一点。始终使用错误报告和显示所有错误进行开发。

于 2013-01-06T22:15:22.667 回答