2013-04-04 59 views
1

enter image description here我將一些數據發佈到使用soome html和php的mysql數據庫中。我無法發佈收音機。我認爲我搞亂了我在php和數據庫中聲明的方式。我已將收音機定義爲tinyint。這是我的PHP單選按鈕選項不在MYSQL中發佈

$value = $_POST['name']; 
$value2 = $_POST['email']; 
$value3 = $_POST['address']; 
$value4 = $_POST['city']; 
$value5 = $_POST['state']; 
$value6 = $_POST['zip']; 
$value7 = $_POST['primary']; 

$sql = "INSERT INTO demo (name, email, address, city, state, zip, primary) VALUES ('$value', '$value2', '$value3', '$value4', '$value5', '$value6', '$value7')"; 

HTML

<div id="options"> 
     <div class="opt1"><input type="radio" name="primary" value="Color" /></div> 
     <div class="opt2"><input type="radio" name="primary" value="Dry" /></div> 
     <div class="opt3"><input type="radio" name="primary" value="Damaged" /></div> 
     <div class="opt4"><input type="radio" name="primary" value="Thinning" /></div> 
    </div> 

我有其他形式的元素作爲文本字段,他們會雖然

+1

SQL注入。 SQL注入。 <3 – 2013-04-04 01:52:25

回答

2

你的問題是(我相信)由於使用intval()造成的。

您傳遞的值是一個字符串 - 無論是Color,Dry,Damaged還是Thinning。

如果您想將整數傳遞給$value7 - 將html中單選按鈕的值更改爲所需的結果。

如: <div class="opt1"><input type="radio" name="primary" value="1" /></div>

+0

@ anwyatt - 其實我想發佈字符串。感謝您的支持。我將$ value7更改爲這個$ value7 = $ _POST ['primary']);並在mysql ..中鍵入as varchar,但它仍然沒有通過 – soum 2013-04-04 01:33:53

+0

@soum它插入行,只是將'主'字段留空?您是否曾嘗試在$ _POST上運行var_dump或print_r以查看是否有值被髮送到$ _POST ['primary']? – drewwyatt 2013-04-04 01:42:22

+0

@ anwyatt-我添加了一張圖片,它的外觀如何。當我添加收音機時,不會添加任何行。 – soum 2013-04-04 01:49:59

1

單選按鈕和複選框被傳遞到後爲數組。您需要更改所有單選按鈕的名稱。 <input type="radio" name="primary[]" value="Color" />和幹,損壞和變薄相同。並且在你的PHP中:$ value7 = $ _POST ['primary'] [0];