我有一张表格。里面有一些复选框。所以当有人选择一些复选框时(假设我们选择了两个复选框Disk Space,Processor)并点击了save。然后它应该像这样保存在数据库中
id attribute_name
1 Disk space
2 Processor
<form id="formID" method="post" action="" enctype="multipart/form-data">
<input type="checkbox" name="" value="Disk space"/>Disk space<br />
<input type="checkbox" name="" value="Color"/>Color<br />
<input type="checkbox" name="" value="Processor"/>Processor<br />
<input type="submit" name="save" id="save" value="save"/>
</form>
有人能告诉我怎么做吗? 我做了像这样的插入查询
INSERT INTO `ia_attributes`(`attribute_id`, `attribute_name`) VALUES ('', '".$attribute_values."')";
但是这一个在一列中输入了所有选定的属性。
答案 0 :(得分:1)
<form id="formID" method="post" action="" enctype="multipart/form-data">
<input type="checkbox" name="test[]" value="Disk space"/>Disk space<br />
<input type="checkbox" name="test[]" value="Color"/>Color<br />
<input type="checkbox" name="test[]" value="Processor"/>Processor<br />
<input type="submit" name="save" id="save" value="save"/>
</form>
插入查询应该是
foreach($_POST['test'] as $value) {
INSERT INTO `ia_attributes`(`attribute_id`, `attribute_name`) VALUES ('', '".$value."')";
}
答案 1 :(得分:0)
<?php
foreach($attribute_values as $value)
{
$sql = mysql_query("INSERT INTO `ia_attributes`(`attribute_id`, `attribute_name`) VALUES ('', '".$value."')"");
}
?>
它的帮助?
答案 2 :(得分:0)
在执行任何插入查询之前,它还将验证数据。
<form id="formID" method="post" action="" enctype="multipart/form-data">
<input type="checkbox" name="type[]" value="Disk space"/>Disk space<br />
<input type="checkbox" name="type[]" value="Color"/>Color<br />
<input type="checkbox" name="type[]" value="Processor"/>Processor<br />
<input type="submit" name="save" id="save" value="save"/>
</form>
然后在PHP中,代码将确保某人只是提交而不检查任何不会尝试执行查询的内容。
if(isset($_POST["save"]) && isset($_POST["type"])){
$types = $_POST["type"];
if(sizeof($types) > 0 ){
foreach($types as $type){
$qry= '';
$qry = "INSERT INTO `ia_attributes`(`attribute_id`, `attribute_name`) VALUES ('', '".$type."')";
// execute the above query
}
}
}
答案 3 :(得分:0)
在HTML代码中执行此操作:
<form id="formID" method="post" action="" enctype="multipart/form-data">
<input type="checkbox" name="attrname[]" value="Disk space"/>Disk space<br />
<input type="checkbox" name="attrname[]" value="Color"/>Color<br />
<input type="checkbox" name="attrname[]" value="Processor"/>Processor<br />
<input type="submit" name="save" id="save" value="save"/>
</form>
现在在你的php文件中:
foreach($_POST['attrname'] as $attribute_values) {
mysqli_query("INSERT INTO `ia_attributes`(`attribute_name`) VALUES ('".$attribute_values."')");
}
由于您的表结构attribute_id
似乎是主键并且自动递增,因此您无需通过惰性查询插入它。
答案 4 :(得分:0)
<input type="checkbox" name="" value="Disk space"/>Disk space<br />
您需要将上述代码更改为:
<input type="checkbox" name="attribute_name[]" value="Disk space"/>Disk space<br />
注意名称中的[]
现在,你的$ _POST ['attribute_name']是一个数组(如果不是空的),看起来像:
$_POST['attribute_name'][0] = 'Disk'
$_POST['attribute_name'][1] = 'Color'
循环非空数组将允许您将每个值插入表中的单独行(注意:这将为每个循环项运行1个查询):
foreach ($_POST['attribute_name'] as $name)
{
mysql_query("INSERT INTO `ia_attributes` (`attribute_id`, `attribute_name`) VALUES ('', '".mysql_real_escape_string($name)."') ");
}
最佳方法是仅执行1次查询 像这样:
$query = '';
foreach ($_POST['attribute_name'] as $name)
{
$query .= " ('', '".mysql_real_escape_string($name)."'), ";
}
if (!empty($query))
{
$query = substr($query, 0, -2);
mysql_query("INSERT INTO `ia_attributes` (`attribute_id`, `attribute_name`) VALUES ".$query." ");
}
更好:停止使用mysql_并切换到mysqli_(注意最后的 i )或pdo }