在这个 SQL 查询构造中,无论它的值是什么txtSearchField(即使它是空的),您都会执行它。您还忘记了将美元符号 $ 放在此变量的前面,这txtSearchField就是为什么您无法从输入表单中获得任何结果的原因,因为您总是搜索文本txtSearchField,而不是变量的内容$txtSearchField。(我猜你使用了一个带有 HTML 文本输入的输入表单,称为txtSearchField)。请记住将 HTML 表单的方法设置为“post”,因为如果省略它,则默认为“get”。
如果我是对的,您应该以这种方式重新编写代码:
<?php
//Sanitize user input
$txtSearchField = filter_var($_POST['txtSearchField'], FILTER_SANITIZE_STRING);
//SQL query
$query = "SELECT property.propertyid, property.propertyname
FROM property
WHERE CONCAT(property.address_1, ' ',
property.address_2, ' ',
property.postcode, ' ',
property.area) LIKE '%$txtSearchField%'" //see the $ sign here
//Finally, execute query and get result
$result = mysql_query ($query) or die ('SQL error occured: '.mysql_error());
while ($array = mysql_fetch_assoc($result)) {
echo $result['address_1'].'/'.$result['address_2'].'/'.$result['postcode'].'/'.$result['area'].'<br/>';
}
?>