Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我应该在表单中使用mysql enum作为动态下拉列表吗?_Php_Mysql - Fatal编程技术网

Php 我应该在表单中使用mysql enum作为动态下拉列表吗?

Php 我应该在表单中使用mysql enum作为动态下拉列表吗?,php,mysql,Php,Mysql,我的表单中有几个下拉字段,我需要为用户添加一个“添加新”选项,以便向列表中添加另一个选项。在mysql中,这些下拉列表当前为enum类型。我使用php和jQueryAjax捕获表单上的新选项。现在我需要将捕获的选项永久添加到下拉列表中。我应该编写php向字段添加一个enum选项,还是应该在mysql中不再使用类型enum?如果是前者,有没有比这里的答案更好的方法:这样做?我正在使用Codeigniter,希望向我的数据模型添加一个函数来添加选项。比如: <?php function ad

我的表单中有几个下拉字段,我需要为用户添加一个“添加新”选项,以便向列表中添加另一个选项。在mysql中,这些下拉列表当前为enum类型。我使用php和jQueryAjax捕获表单上的新选项。现在我需要将捕获的选项永久添加到下拉列表中。我应该编写php向字段添加一个enum选项,还是应该在mysql中不再使用类型enum?如果是前者,有没有比这里的答案更好的方法:这样做?我正在使用Codeigniter,希望向我的数据模型添加一个函数来添加选项。比如:

<?php

function add_option_to_dropdown($field, $option)
{


}

听起来这个下拉列表的值可能会经常更改,因此我不会使用枚举类型。更适合这个目的的是一个存储所有下拉列表选项的表。例如,您可以创建一个名为dropdown_options的表,该表具有:

  • id列
  • 下拉列表id列
  • 选项值列
  • 文本列中的选项
这样,要获取下拉列表的值,只需:

其中dropdown_id是您正在生成的下拉列表的id。要添加新的下拉值,只需:

或在CodeIgniter中:


比更改枚举的值简单得多

使用
ENUM
会让生活变得更加困难。特别是表示动态字段。我可能是因为我对mysql很麻木:-)您建议使用哪种mysql类型来跟踪选项列表?我只会使用一个单独的2列表(id、值),然后每行表示一个选项在这种情况下,添加/删除/排序值要容易得多:)
SELECT * FROM dropdown_options WHERE dropdown_id = 1;
INSERT INTO dropdown_options (dropdown_id, option_value, option_text)
VALUES (1, "apple", "Apple");
$data = array(
    'dropdown_id' => '1',
    'option_value' => 'apple',
    'option_text' => 'Apple');
$this->db->insert('dropdown_options', $data);