如何将动态值插入mysql数据库

时间:2013-12-02 10:14:36

标签: php mysql sql database dynamic

我有一个内容名称,电话号码,地址,个人信息等表格

我已经给了一个选项,用户可以使用复选框

插入哪些字段

已在其他页面上检查过的字段,例如:如果他有选择的名称和地址

...然后名称和地址出现....所以我怎么能使我的mysql数据库.....所以如果有人选择我的表格中的所有选项....我的mysql表应保存所有数据..

所以基本上我的问题是如何动态创建我的mysql数据库...所以如果用户selets 2选项它可以插入2个值&如果用户选择所有选项,他可以保存所有值.....

4 个答案:

答案 0 :(得分:1)

首先你要明确的是他们在你所有领域的任何必填字段,我认为它必须是一些强制性的,否则会发生什么是如果用户只提交表格它会在数据库中插入空白行,所以要明确哪个字段你想强制要求。

然后将所有其他内容放入复选框,并创建一个数据库表,其中包含所有字段名称,默认值为null。

并且每次使用数组将数据插入到数据库中,这样每次字段名称及其值都不必写入

< form >
     < input type="text" name="detail['name']" value="" / >
     < input type="text" name="detail['age']" value="" / >
     < input type="text" name="detail['email']" value="" / >
     .
     .
     .
     .
   < / form >

你会在另一端获得什么

 $detail = $_POST['detail'];

现在,从表单发布的所有值及其字段名称都在$ detail内。

轮到你做一个查询,它会将$ detail数组的键作为表的列,$ detail的值是要插入db中的值,如

 $field_string = '';
 $value_string = '';

 foreach($detail as $key => $val){

   $field_string = $key.",";
   $value_string = $value.",";       

 }
 $field_string = trim($field_string, ",");
 $value_string = trim($value_string, ",");

$query = "INSERT INTO table ($field_string) VALUES ($value_string) ";

这就是我希望这会对你有所帮助

答案 1 :(得分:0)

使用database.selected中的所有字段创建表,将插入选项字段值,并插入其他字段为null

答案 2 :(得分:0)

您可以做的就是在表格中创建包含所有列的数据库,或者只在表格if it does not exist一次又一次地添加一列但是,即使您在删除数据之前未添加数据,也会存在已添加到数据库中的列

答案 3 :(得分:0)

首先使用以下select语句获取所有列号 (在这个例子中,我假设你有一个类(一如既往)从DB读取数据)

select count(*) from cols where table_name='MyTableName'

如果行数与上述查询的答案相同,则必须显示

select * from MyTableName

如果不是:

我假设您将数据保存在$ UserSelectedField

$userSelectedField=implode($UserSelectedField,',');
$sql="select $UserSelectedField from MyTableName ";

然后你可以显示$ sql的答案