フォームに複数のPOSTデータフィールドがあり、mysqlデータベースにクエリを実行したいのですが、1つのPOSTデータフィールドだけを入力するとすべてが機能しますが、2つ以上のフィールドがある場合は、質問の間に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%'";
}
ユーザーが2つの投稿フィールドに入力した場合、SQLは「SELECT * FROM medlem
WHERE Fornamn LIKE'bar LIKE 'foo' Efternamn
'」を取得し、それらの間にANDがありません。この問題の簡単な解決策はありますか?
アーラシュ