我有2张桌子
表-1 - user
user(ID.Name,Class)
表-2 - Category
Category(ID,user_id,cat_id)
如果用户从文本字段输入数据,那么如何从两个表中搜索数据
答案 0 :(得分:0)
只需查询两个表,并在
中使用“OR”运算符作为要搜索的列 SELECT * from user, category WHERE user.id=[text field] or category.user_id=[text field] or category.cat_id=[text field]
PHP示例:(假设您使用的是MySQL数据库 - 您还需要在php.ini文件中启用mysqli)
$mysqli = mysqli_connect(HOSTNAME, USERNAME, PASSWORD, DATABASE);
if (mysqli_connect_errno($mysqli)) {throw new exception("Failed to connect to MySQL: " . mysqli_connect_error());}
$sql = " SELECT * from user, category WHERE user.id='".$text_field."' or category.user_id='".$text_field."' or category.cat_id='".$text_field."'";
$rows = $result->fetch_array(MYSQLI_ASSOC);
foreach($rows as $row){
print_r($row);
}
这应该获取记录并显示数组的响应。
答案 1 :(得分:0)
我希望你已经添加了主键和&这些表的外键关系,为了从两个表中获取数据,你有两种方式,要么两个表的乘法和引入所有数据,否则使用JOIN以有效的方式做同样的事情
希望将您的表架构设为 USER [table]有id,username,name,password CATEGORY [table]有id,name,description,user_id
因此查询将变为
SELECT U.*, C.id as cat_id, C.name as cat_name, C.description as cat_desc
FROM USER U
JOIN CATEGORY C ON C.user_id = U.id
如果您有用户从输入字段输入数据,这将成为要在上面的查询中添加的过滤器查询,假设用户输入类别名称并希望结果集相同,则上面的查询将添加WHERE子句如下
WHERE C.name LIKE '%{INPUT FIELD CONTENT HERE}%'
我上面使用LIKE子句允许我们进行PARTIAL搜索
希望这有助于你