【问题标题】:Insert multiple selection values from html into mysql db将多个选择值从 html 插入 mysql db
【发布时间】:2015-05-03 13:17:54
【问题描述】:

我有一个应用程序,用户可以从 html selet 中选择多个项目,并且此选择需要存储为一个 id 行,

例如:

time_id   time_name   values

1         common     x,y,z

下面是我的 PHP 控制器,

$time_data=array(
    'time_name'=>$this->input->post('time_name'),
    'time_days'=>$this->input->post('time_days'),
    'time_hours'=>$this->input->post('time_hours'),
    'time_minutes'=>$this->input->post('time_minutes'),
    'time_start'=> implode(",", $this->input->post('time_start')),
    'time_end'=>implode(",", $this->input->post('time_end')),
    'time_department'=>implode(",", $this->input->post('time_department')),
    'time_timecategory'=>$this->input->post('time_timecategory'),
    'time_searchwords'=>$this->input->post('time_searchwords'),
    'timecreated_time' =>date("Y-m-d H:i:s")
    );

//Add starts
if($this->form_validation->run() !== FALSE) {
    $result = $this->model_admin->updatetime($time_data);

    if(!$result) {
        $content = $this->model_admin->LastEntrytime();
        echo json_encode($content);
    }
}
else {
    echo json_encode(array('cival'=>0, 'val_message' => validation_errors()));
}

下面是我的 HTML,用户可以从下拉列表中选择多个项目,

<div class="col-md-9">
  <select id="time_department" name="time_department[]" class="form-control select2" multiple>
<?php
  foreach($departments_array as $department) { ?>
    <option value="<?php echo $department["department_id"];?>"><?php echo $department["department_name"]?></option>
<?php
  } ?>
  </select>
</div>

这样,我的多选值存储为 x、y、z 或 1、2、4 等...

但我想创建多对多链接表,我将在每个不同行中存储 x、y、z 的值,而不是逗号分隔值,

如何在mysql中插入多个选定的值作为多对多表?

谢谢,

【问题讨论】:

    标签: php html mysql codeigniter


    【解决方案1】:

    不确定我是否完全理解您的问题。看看这是否有帮助:

    1) 首先,创建一个新表来存储将包含所选值的值。

    2) 这个表的主键是什么?是time_id吗?如果没有 PK,则创建一个。

    3) 在刚刚创建的新表中,添加一个引用第一个现有表的主键的外键。还要使该字段/列不为空。

    4) 在刚刚创建的表中添加尽可能多的行(根据选择的值的数量)。不要忘记使用 FK 将它们链接回第一个表中的正确行。

    这就是你想要达到的目标吗?

    【讨论】:

    • 是的,几乎一样,time_id 是 PK,更清楚一点,我需要创建一行 time_id 为 1,这一行有 time_name = test 和 time_values = good, bad, soso, blabla。或者可能像 2,4,5,10 是其他表(FK)的 ID,现在用 2,4,5 存储不是一个好主意,所以我需要为新表中的每个多选值创建行?它的结构像 1, good, 2 -- 1, bad, 4 -- 1,soso,5 -- 1,blabla-10 像这样,所以不是以逗号分隔存储,而是存储在表中,如何做到这一点?
    • 像这样,stackoverflow.com/questions/4804841/…,这在列中有 id,但也会有 FK + 字符串,
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    • 2012-08-20
    • 2014-03-27
    • 1970-01-01
    • 2018-12-15
    相关资源
    最近更新 更多