我制作了一个 HTML 搜索表单,它根据表单的内容创建对 MySql 数据库的查询。如果用户将该特定表单字段留空,我想做的是忽略搜索参数。网上有很多答案,尤其是在这个网站上,但我无法让它们中的任何一个起作用。
我已经尽可能地剥离了我的代码粘贴到这里:
HTML 输入:
<form action="deletesearchresults.php" method="GET">
<p><b>First Part Of Postcode</b>
<input type="text" name="searchpostcode"></b> </p>
<p><b>Category</b>
<input type="text" name="searchfaroukcat"></b>
<input type="submit" value="Search">
</p>
</form>
PHP 结果显示:
<?php
mysql_connect("myip", "my_username", "my_password") or die("Error connecting to database: ".mysql_error());
mysql_select_db("my_db") or die(mysql_error());
$sql = mysql_query("SELECT * FROM
GoogleBusinessData
INNER JOIN TblPostcodeInfo ON GoogleBusinessData.BusPostalCode = TblPostcodeInfo.PostcodeFull WHERE PostcodeFirstPart = '$_GET[searchpostcode]' and FaroukCat = '$_GET[searchfaroukcat]' LIMIT 0,20");
while($ser = mysql_fetch_array($sql)) {
echo "<p>" . $ser['BusName'] . "</p>";
echo "<p>" . $ser['PostcodePostalTown'] . "</p>";
echo "<p>" . $ser['PostcodeArea'] . "</p>";
echo "<p>" . $ser['FaroukCat'] . "</p>";
echo "<p> --- </p>";
}
?>
这很好用,直到我将一个字段留空,在这种情况下,它不返回任何结果,因为它认为我正在询问该字段为空或 null 的结果,我不知道。我想要该表单字段为空的所有结果。
我尝试组合 like % [myfeild] % 等,但我只希望结果准确显示字段中的内容,而不仅仅是包含字段中内容的结果,例如搜索邮政编码“TR1”将返回结果适用于 TR1、TR10、TR11 等。
我相信我可能需要一个数组,但经过 3 天的尝试,我只是不知道如何完成这项工作。
任何帮助都会很棒。
编辑:此外,我最终将在此表单中添加多达十个字段,而不仅仅是本示例中的两个字段,因此请记住这一点,并提出您可能有的任何建议。