gpt4 book ai didi

mysql - select2 多个值存储在数据库中

转载 作者:搜寻专家 更新时间:2023-10-30 20:53:38 24 4
gpt4 key购买 nike

我已经成功制作了一个可搜索的下拉列表,每当我在其中输入内容时,数据库中的数据就会出现在下拉列表中,现在我想将这些选择的多个值存储在数据库中。

我在 Controller 中的代码

$temp = $model->package_item = $_POST['package_item'];   
foreach($temp as $t)
{
$model->package_item=$t;
}

Package_item 是应用可搜索下拉列表的字段,我正在选择多个值,现在如何将这些值保存在数据库中,这样我就会有一个 id,但是针对此 id,package_item 将具有多个值,其余属性将重复。就像下面一样。

     id------package_item------package_description------package_name
1--------cake------------ very cheap-------------get one buy one free
1---------candles---------- very cheap-------------get one buy one free
1----------fireworks--------very cheap-------------get one buy one free

我正在使用 select2 扩展,这是 View 文件中的代码

  $this->widget('ext.select2.ESelect2', array(
'name' => 'package_item',
'data' => CHtml::listData(Package::model()->findAll(), 'id', 'package_item'), //the whole available list
'htmlOptions' => array(
'placeholder' => ' search packge item?',
//'options' => $options, //the selected values
'multiple' => 'multiple',
'style'=>'width:530px',
),
));

提前致谢

最佳答案

我的第一个答案非常具有误导性,所以我删除了它并在此处再试一次。

您需要规划您的数据库表。我在这里提出一个建议:

表格项目

itemId[PK]|       name     | price |...|
1 | cake | 5.00
2 | candles | 2.00
3 | fireworks | 10.00
4 | expensiveStuff | 50.00

packageId[PK] |     name     |     description      | price |
1 | full package | super cheap | 12.00
2 | epic package | best value for money | 55.00

PackagesItems

packageId[PK][FK]|itemId[PK][FK]|amount
1 | 1 | 1
1 | 2 | 1
1 | 3 | 1
2 | 1 | 2
2 | 2 | 2
2 | 3 | 3
2 | 4 | 1

然后您可以这样查询您的包裹:
SELECT itemId FROM PackagesItems WHERE packageId = 1 例如

这个答案的关键字是COMPOSITE PRIMARY KEY,在第三张表中可以看到:有两个主键,也是指向其他表的外键。

使用 SQL JOINS,您可以从其他两个表中检索信息。如果您需要更多信息,请缩小您的问题范围。你到底想知道什么?

关于mysql - select2 多个值存储在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32437884/

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