我有一个名为info的表,其中包含3列:Id,city,country 我需要过滤表格。也就是说,当我搜索城市和国家时,它应该向我显示确切的行,但是当我只搜索该国家时,它应该显示该国家的所有城市。我怎么写条件?
我尝试过使用AND和OR但它们只执行一项任务。我当前的查询
SELECT * FROM info WHERE name='$_POST[name1]' AND country='$_POST[country1]';
这两个领域的工作和
SELECT * FROM info where name='$_POST[name1]' OR country='$_POST[country1]';
一次在两个字段上搜索时失败
答案 0 :(得分:0)
name和country都是varchar,所以以这种方式使用LIKE:
SELECT * FROM info WHERE name LIKE '$_POST[name1]' OR country LIKE '$_POST[country1]';
试试这个。
答案 1 :(得分:0)
试试这个:
$condition = '';
$query = ''
if(!empty($_POST[name1])) { $condition .= "and name LIKE '$_POST[name1]' "; }
if(!empty($_POST[country1])){ $condition .= "and country LIKE '$_POST[country1]' "; }
$query = "SELECT * FROM info WHERE Id !='' " . $condition;
mysqli_query($connection,$query);