PHP搜索函数打印所有记录,而不是搜索到的记录


PHP Search Function prints all records, not those searched for

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

My Form如下:

<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/>';
        }
  }

谢谢人

你的表单字段是name,而不是term,所以你的PHP应该是

$term = $_POST['name'];

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

仅供参考,打开error_reporting和报告通知会告诉您这一点。始终在开发过程中报告错误并显示所有错误