我有一个内容名称,电话号码,地址,个人信息等表格
我已经给了一个选项,用户可以使用复选框
插入哪些字段已在其他页面上检查过的字段,例如:如果他有选择的名称和地址
...然后名称和地址出现....所以我怎么能使我的mysql数据库.....所以如果有人选择我的表格中的所有选项....我的mysql表应保存所有数据..
所以基本上我的问题是如何动态创建我的mysql数据库...所以如果用户selets 2选项它可以插入2个值&如果用户选择所有选项,他可以保存所有值.....
答案 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的答案