我刚刚在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/>';
}
}
谢谢你们
答案 0 :(得分:2)
您的表单字段为name
,而不是term
,因此您的PHP应为
$term = $_POST['name'];
由于$term
由于值不正确而空白,因此查询会返回所有结果。 (您的查询类似于SELECT name, producer, jamtypes, user FROM Jam WHERE name LIKE '%&'
)
仅供参考,启用error_reporting并报告通知会告诉您这一点。始终使用错误报告并显示所有错误。