gpt4 book ai didi

php - 此后如何使用 explode ,因为在我的数据库列中,所有值都在产品列中可用,如下所示

转载 作者:行者123 更新时间:2023-11-29 12:51:51 24 4
gpt4 key购买 nike

我正在创建一个数据库来存储用户信息和链接到该用户的产品。我通过使用 , 内爆来存储产品。稍后如何 explode 它们?

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>

在 PHP 代码中:

if(isset($_POST['submit']))
{
$name=$_POST['txt'];
$email=$_POST['email'];
$pass=$_POST['pass'];
$product=$_POST['chk'];

foreach($product as $result)
{
$csk[]=$result;
}
//print_r($csk); exit;
$rko=implode(",",$csk);

$rec=mysql_query("insert into test(name,email,pass,product) values('".$name."','".$email."','".$pass."','".$rko."')");

if($rec)
{
echo "Successfully Added";
}
else
{
echo " Failed To Add";
}
}

数据库将包含如下记录:

+----+------+-------------+------+------------------+
| id | name | email | pass | product |
| 1 | kodi | k@gmail.com | kodi | laptop,pc |
| 2 | muru | m@gmail.com | kodi | laptop,pc,tablet |
+----+------+-------------+------+------------------+

我想知道如何分解这个,我想知道如何编写查询来查找拥有笔记本电脑、个人电脑、平板电脑或某种组合的人。

最佳答案

您可以使用 SQL 通配符在产品字段中搜索:

SELECT * FROM `dbtable` WHERE `product` LIKE '%tablet%' OR `product` LIKE '%laptop%';

要分离结果,您可以这样做:

$res = explode(",", $result['product']);
foreach ($res as $item) {
echo "has $item ";
}

更好的方法是:

  • 您应该考虑不存储纯文本密码。
  • 您应该连接表,这些表实际上具有人员和项目之间的关系。例如:

    人员

    +----+------+-------------+------------------------------------------------------------------+
    | id | name | email | password_hash |
    | 1 | kodi | k@gmail.com | 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 |
    | 2 | muru | m@gmail.com | c0e81794384491161f1777c232bc6bd9ec38f616560b120fda8e90f383853542 |
    +----+------+-------------+------------------------------------------------------------------+

    东西

    +----+-----------+--------+
    | 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');

关于php - 此后如何使用 explode ,因为在我的数据库列中,所有值都在产品列中可用,如下所示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24603753/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com