2012-12-28 234 views
-1

根據previus用戶選擇,我有一個包含多個具有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個,複選框的數量也取決於previus用戶的選擇。

複選框值將爲數字值。

希望我的問題清楚得足以得到答案。

+0

你只是詢問如何獲取值了數組和字符串格式? –

+0

是的,基於表單預成型的方式。 –

+0

在你的數據庫價格表中,你有像value1,value2等字段?有多少個字段用於值? –

回答

0

這是基本的PHP數組訪問:

$query = "INSERT INTO price (value1, value2) VALUES (". $_POST['price'][0]) .", " . $_POST['price'][0]) . ")"; 
mysql_query($query); 

請注意幾件事情雖然。你目前沒有做任何事情來保護你的數據庫免受MySQL注入。對於攻擊者來說,刪除整個表格或刪除數據庫等操作非常簡單。您也不應該使用mysql_*函數。這些已被棄用,shoudl不會被使用。使用mysqli_*功能,PDO或其他更安全的功能。

0

ü可以將它們像

$price = $_POST['price'] ; 

    mysql_query("INSERT INTO price (value1, value2,value3) 
    VALUES ('".$price[0]."' ,'".$price[1]."' ,'".$price[2]."' )") ; 
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]})"); 

mysql_*擴展不贊成PHP 5.5.0,而且會將來會被刪除。相反,應該使用MySQLiPDO_MySQL擴展名。有關更多信息,另請參閱MySQL: choosing an API指南和related FAQ

0

我不知道,如果你有代碼或algoritim問題,但如果是代碼和你在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> 
相關問題