2011-04-21 72 views
0

我需要做的是將用戶選中的任何內容插入到我們在數據庫中創建的表中。我能夠將數據存儲到數組中,但後來我無法將它存儲到數據庫中。通過PHP發送複選框到MySQL

<form> 
    <input type="checkbox" name="partType[]" value="GenericBreakPads" /> Generic Break Pads 
    <input type="checkbox" name="partType[]" value="Air_Conditioning_Compressor" /> Air Conditioning Compressor 
    <input type="checkbox" name="partType[]" value="Generic_Battery" /> Generic Battery <br /> 
    <input type="checkbox" name="partType[]" value="Carburetor" /> Carburetor  
    <input type="checkbox" name="partType[]" value="Engine_Balance_Shaft" /> Engine Balance Shaft    
    <input type="checkbox" name="partType[]" value="Engine_Cylinder" /> Engine Cylinder     
    </form> 

我已經嘗試過序列化,但由於它存儲到表中的方式並不是很有幫助。

$theParts=serialize($_POST['partType']); //takes the data from a post operation... 
$query=INSERT INTO parts VALUES('$partType'); 

如果有人可以幫助我,我會非常感激!

+1

發佈您的表格結構! – Bil 2011-04-21 00:37:52

+1

你想要如何存儲數據?在單列中?在多個欄目中,作爲m2m關係? – prodigitalson 2011-04-21 00:39:17

+0

你真的想輸入:'$ theParts ='**'mysql_real_escape_string' **'(serialize($ _ POST ['partType'])); //從後期操作中獲取數據... $ query = INSERT INTO部分VALUES('$ partType'); 「對,對嗎? – Johan 2011-04-21 00:40:07

回答

0
$query = 'INSERT INTO parts VALUES("'. mysql_real_escape_string($partType) .'");'; 
0

你真的應該循環複選框的結果。 即

for ($i=0;$i<count($partType);$i++) { 
    //insert record into database using $partType[$i] 
} 

然後,您可以將數據插入離散行。

但是,如果你真的必須存儲在一個單一的領域,那麼你也可以爆炸數組到一個逗號分隔字符串。那麼你可以插入串到你的數據庫字段

implode("," $partType); 

這雖然打破良好的數據庫設計/使用其不再歸爲您的存儲單個數據庫字段

implode();

內超過1個項目

希望有幫助