我有一个包含2个以上复选框的表单,其中包含DynamicValues,具体取决于用户的选择。
<?php if (isset($_POST['submit'])) {
if(sizeof($_POST['price']) == 2){
mysql_query("INSERT INTO price (value1, value2)
VALUES ('???????????????????????')");
}
else{
echo "NOT OK"; }
}
?>
<form id="send" action="send.php" method="post">
Price 1<input name="price[]" type="checkbox" value="DynamicValue">
Price 2<input name="price[]" type="checkbox" value="DynamicValue2">
Price 3<input name="price[]" type="checkbox" value="DynamicValue3">
<input name="submit" type="submit" value="Send" />
</form>
VALUES应包含哪些内容才能为每个选中的复选框获取正确的值。 用户必须能够从列表中的任何位置检查2个复选框吗?
复选框可能碰巧超过3个,复选框的数量也取决于普通用户的选择。
复选框值将是数值。
希望我的问题很清楚,以便得到答案。
答案 0 :(得分:1)
使用foreach
循环来设置值escaping to prevent SQL Injection -
if(sizeof($_POST['price']) == 2){
$i=0;
foreach($_POST['price'] as $prices){
$price[$i] = mysql_real_escape_string($prices);
$i++;
}
mysql_query("INSERT INTO price (value1, value2) VALUES ({$price[0]},{$price[1]})");
自PHP 5.5.0起,mysql_*
扩展名已弃用,将来会被删除。相反,应使用MySQLi或PDO_MySQL扩展名。有关详细信息,另请参阅MySQL: choosing an API指南和related FAQ。
答案 1 :(得分:0)
这是基本的PHP数组访问:
$query = "INSERT INTO price (value1, value2) VALUES (". $_POST['price'][0]) .", " . $_POST['price'][0]) . ")";
mysql_query($query);
请注意一些事情。您目前没有采取任何措施来保护您的数据库免受MySQL注入。对于攻击者来说,删除整个表格或删除数据库都会非常简单。
您也不应该使用mysql_*
功能。这些已被弃用且不得使用。使用mysqli_*
函数,PDO或其他更新且更安全的函数。
答案 2 :(得分:0)
$price = $_POST['price'] ;
mysql_query("INSERT INTO price (value1, value2,value3)
VALUES ('".$price[0]."' ,'".$price[1]."' ,'".$price[2]."' )") ;
答案 3 :(得分:0)
我不知道你的代码或算法是否有问题,但是如果是代码并且你是php的初学者可以帮助你:
<?php
if (isset($_POST['submit'])) {
if(!isset($_POST['price']))
echo "No prices selected!";
elseif(count($_POST['price'])==2) { //exactely 2 prices selected
$product = $_POST['product'];
foreach ($_POST['price'] as $value) {
$sql = "INSERT INTO price (product, value) VALUES (\"{$product}\", \"{$value}\")";
mysql_query($sql);
}
} else
echo "You need select 2 prices!";
}
?>
<form id="send" method="post">
<input name="product" type="hidden" value="ID3">
Price 1<input name="price[]" type="checkbox" value="DynamicValue"<?php if (isset($_POST['price']) && in_array('DynamicValue', $_POST['price'])) echo ' checked'; ?>>
Price 2<input name="price[]" type="checkbox" value="DynamicValue2"<?php if (isset($_POST['price']) && in_array('DynamicValue2', $_POST['price'])) echo ' checked'; ?>>
Price 3<input name="price[]" type="checkbox" value="DynamicValue3"<?php if (isset($_POST['price']) && in_array('DynamicValue3', $_POST['price'])) echo ' checked'; ?>>
<input name="submit" type="submit" value="Send" />
</form>