string(10)“ 20,999,999”您的SQL语法有错误;请查看与您的MariaDB服务器版本相对应的手册,以在第11行的“ 999,999”附近使用正确的语法
我要在数据库中搜索一个字符串,并检索所有低于给定数字的值。
在我的数据库中,该字段是VARCHAR(45)。它可以与其他领域的平方英尺完美配合。
我已经尝试过复制它,使其类似于我所拥有的平方英尺解决方案,但无济于事。
$sql = "SELECT address.address AS address,
address.price AS price,
county.county AS county,
type.type AS type,
address.idaddress AS idaddress, address.feet AS feet
FROM address
JOIN county
ON address.county_idcounty = county.idcounty
JOIN type
ON address.type_idtype = type.idtype
WHERE 1=1";
var_dump($_GET["prices"]);
if( isset($_GET["address"]) && !empty($_GET["address"]) ) {
var_dump($_GET["address"]);
$sql = $sql . " AND address.address LIKE '%" . $_GET["address"] . "%'";
}
if( isset($_GET["location"]) && !empty($_GET["location"]) ) {
$sql = $sql . " AND county.idcounty =" . $_GET["location"];
}
if( isset($_GET["property"]) && !empty($_GET["property"]) ) {
$sql = $sql . " AND type.idtype =" . $_GET["property"];
}
if( isset($_GET["prices"]) && !empty($_GET["prices"]) ) {
$sql = $sql . " AND address.price <=" . $_GET["prices"];
}
if( isset($_GET["feet"]) && !empty($_GET["feet"]) ) {
$sql = $sql . " AND address.feet <=" . $_GET["feet"];
英尺是平方英尺,效果很好……我希望能够搜索所有低于20,999,999的价格。
如果您需要更多信息,请告诉我。感谢您的帮助!
答案 0 :(得分:0)
如果您的栏位价格是varchar,则相关的位置必须放在单引号中
$sql = $sql . " AND address.price <='" . $_GET["prices"] . "'";
无论如何,您都不应该在SQL中使用php var,否则您就有可能进行sql注入(您应该查看准备好的语句和绑定参数)