Php 如何在此之后使用explode,因为在“我的数据库”列中,产品列中的所有值都可用,如下所示
我正在创建一个数据库来存储用户信息和链接到用户的产品。我通过使用Php 如何在此之后使用explode,因为在“我的数据库”列中,产品列中的所有值都可用,如下所示,php,mysql,arrays,explode,implode,Php,Mysql,Arrays,Explode,Implode,我正在创建一个数据库来存储用户信息和链接到用户的产品。我通过使用,内爆来存储产品。我以后如何引爆它们 HTML格式: <form name="frm" method="post"> <table align="center"> <tr> <td>Name</td> <td><input type="text" name="txt" id="txt" required ></td>&l
,
内爆来存储产品。我以后如何引爆它们
HTML格式:
<form name="frm" method="post">
<table align="center">
<tr>
<td>Name</td>
<td><input type="text" name="txt" id="txt" required ></td><td></td>
</tr>
<tr>
<td>Email</td>
<td><input type="email" name="email" id="email" required ></td><td></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="pass" id="pass" required></td><td></td>
</tr>
<tr>
<td>Product</td>
<td>
<input type="checkbox" name="chk[]" value="laptop">Laptop
<input type="checkbox" name="chk[]" value="pc">Pc
<input type="checkbox" name="chk[]" value="tablet">Tablet
</td><td></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Save"></td><td></td>
</tr>
</table>
</form>
数据库将包含如下记录:
+----+------+-------------+------+------------------+
| id | name | email | pass | product |
| 1 | kodi | k@gmail.com | kodi | laptop,pc |
| 2 | muru | m@gmail.com | kodi | laptop,pc,tablet |
+----+------+-------------+------+------------------+
我想知道如何对此进行分解,我想知道如何编写查询以查找拥有笔记本电脑、pc、平板电脑或某种组合的用户。您可以使用SQL通配符在产品字段中进行搜索:
SELECT * FROM `dbtable` WHERE `product` LIKE '%tablet%' OR `product` LIKE '%laptop%';
要分离结果,请执行以下操作:
$res = explode(",", $result['product']);
foreach ($res as $item) {
echo "has $item ";
}
更好的方法是:
SELECT p.*
FROM `people` AS `p` LEFT JOIN
`stuff` AS `s` ON `p`.`id` = `s`.`person_id`
WHERE `s`.item IN ('laptop','tablet');
- 您应该已经连接了在人员和项目之间实际具有关系的表。例如:
表
人员
表+----+------+-------------+------------------------------------------------------------------+ | id | name | email | password_hash | | 1 | kodi | k@gmail.com | 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 | | 2 | muru | m@gmail.com | c0e81794384491161f1777c232bc6bd9ec38f616560b120fda8e90f383853542 | +----+------+-------------+------------------------------------------------------------------+
stuff
那么您的查询将是:+----+-----------+--------+ | id | person_id | item | | 1 | 1 | laptop | | 2 | 1 | pc | | 3 | 2 | laptop | | 4 | 2 | pc | | 5 | 2 | tablet | +----+------+-------------+
SELECT p.* FROM `people` AS `p` LEFT JOIN `stuff` AS `s` ON `p`.`id` = `s`.`person_id` WHERE `s`.item IN ('laptop','tablet');
mysql
函数系列。非常感谢,我在这里有个问题,在插入到表之前,如何将人员id传递到stuff表person_IDb?我是否要创建另一个表stuff并插入pi和项名称?如果我错了,请更正我,我正在等待clarification@user3804431首先,所有这些问题都是志愿者有时间回答的,所以你需要耐心。第二,我不明白你想澄清什么。您只需将stuff
表中的人员id
与人员
或人员
表中的id
匹配即可。您可以手动完成,也可以使用ORM()来完成。