我在一个表单中有多个 POST 数据字段并想查询 mysql 数据库,如果只输入一个 POST 数据字段,一切正常,但如果有两个或更多字段,我会收到错误,因为我需要在我的问题之间输入 AND。
$sql ="SELECT * FROM `medlem` WHERE";
if(!empty($_POST[fnamn])){
$a=mysql_real_escape_string($_POST['fnamn']);
$sql .= " `Fornamn` LIKE '%$a%'";
}
if(!empty($_POST[enamn])){
$a=mysql_real_escape_string($_POST['enamn']);
$sql .= " `Efternamn` LIKE '%$a%'";
}
if(!empty($_POST[adress])){
$a=mysql_real_escape_string($_POST['adress']);
$sql .= " `adress` LIKE '%$a%'";
}
if(!empty($_POST[postnr])){
$a=mysql_real_escape_string($_POST['postnr']);
$sql .= " `postnr` LIKE '%$a%'";
}
if(!empty($_POST[stad])){
$a=mysql_real_escape_string($_POST['stad']);
$sql .= " `stad` LIKE '%$a%'";
}
if(!empty($_POST[pnr])){
$a=mysql_real_escape_string($_POST['pnr']);
$sql .= " `pnr` LIKE '%$a%'";
}
if(!empty($_POST[tfn])){
$a=mysql_real_escape_string($_POST['tfn']);
$sql .= " `tfn` LIKE '%$a%'";
}
if(!empty($_POST[mobil])){
$a=mysql_real_escape_string($_POST['mobil']);
$sql .= " `mobil` LIKE '%$a%'";
}
if(!empty($_POST[epost])){
$a=mysql_real_escape_string($_POST['epost']);
$sql .= " `epost` LIKE '%$a%'";
}
如果用户填写了两个帖子字段,我会得到“SELECT * FROM medlem
WHERE Fornamn LIKE 'foo' Efternamn
LIKE 'bar',并且它们之间缺少 AND。这个问题有简单的解决方案吗?
皮疹