我正试图使搜索框可以使用mysql通配符从多个表中搜索,并将结果显示为输出。
错误代码是:
警告:mysqli_error()期望恰好1个参数,第16行的C:\ xampp \ htdocs \ test \ crud21 \ search.php中给出的参数为0
答案 0 :(得分:0)
使用UNION
从多个表中获取结果并将其合并。
SELECT name
FROM bd
WHERE name LIKE '%$query%'
UNION
SELECT name
FROM info
WHERE name LIKE '%$query%'
UNION
SELECT name
FROM users
WHERE name LIKE '%$query%'
如果您确实要联接所有表,则需要分别为每个表指定名称匹配。
SELECT b.*, i.*, n.*
FROM bd AS b
CROSS JOIN info AS i
CROSS JOIN users AS u
WHERE b.name LIKE '%$query%' AND i.name LIKE '%$query%' AND u.name LIKE '%$query%'
但是,这将创建每个表中所有匹配行的叉积,很难看出您期望它如何有用。而且,如果其中任何一个表都没有匹配的行,则将产生一个空的叉积。