是否可以将这两条语句放入一个查询中?
$q = mysqli_query($con,"SELECT * FROM angebote where (city = '".$_POST['search']."' OR plz = '".$_POST['search']."') AND art = 'biete' ORDER BY id DESC LIMIT 18");
$p = mysqli_query($con,"SELECT * FROM angebote where (city = '".$_POST['search']."' OR plz = '".$_POST['search']."') AND art = 'suche' ORDER BY id DESC LIMIT 18");
似乎不适用于UNION或UNION ALL
所以当我尝试时
$q = mysqli_query($con,"SELECT * FROM angebote where (city = '".$_POST['search']."' OR plz = '".$_POST['search']."') AND art = 'biete' ORDER BY id DESC LIMIT 10 UNION
SELECT * FROM angebote where (city = '".$_POST['search']."' OR plz = '".$_POST['search']."') AND art = 'biete' ORDER BY id DESC LIMIT 10");
它说警告:mysqli_fetch_assoc()期望参数1是mysqli_result,布尔值在C:…中给定。。。。。
UNION
在这里工作良好:
$q = mysqli_query($con, "
SELECT * FROM
(SELECT
*
FROM
angebote
WHERE
(city = '".$_POST['search']."' OR plz = '".$_POST['search']."') AND
(art = 'biete')
ORDER BY id DESC LIMIT 10) as biete_tabelle
UNION
SELECT * FROM
(SELECT
*
FROM
angebote
WHERE
(city = '".$_POST['search']."' OR plz = '".$_POST['search']."') AND
(art = 'suche')
ORDER BY id DESC LIMIT 10) as suche_tabelle"
);
这会给你带来你想要的结果。看看这里的例子。
注意:虽然我坚持使用德语来保持一致性,但我想建议您,最好使用英文的列和变量等名称,这样不会说德语的开发人员更容易阅读您的代码。