2013-02-12 35 views
0

我有一個複選框數組。你如何在mysql中存儲多行和列數組

<input type="checkbox" name="selection[]" value="move" /> 
<input type="checkbox" name="selection[]" value="move2" /> 
<input type="checkbox" name="selection[]" value="move3" /> 
<input type="checkbox" name="selection[]" value="move4" /> 

根據所選複選框的數量,生成一個具有相應行數的表格。

for($x=0; $x<$N; $x++) 
{ 
    echo nl2br("<td><textarea name=art[] rows=10 cols=30></textarea> </td><td><textarea name=science[] rows=10 cols=30></textarea></td></textarea></td><td><textarea name=method[] rows=10 cols=30></textarea></td><td><textarea name=criteria[] rows=10 cols=30></textarea></td></tr>"); 
} 

我無法知道每次會生成多少個具有相應列的錶行。所以如何編寫代碼來插入每一行數組是一個問題。我曾嘗試

$optionsVal = implode(",", $data); 

但只能存儲選擇的選項而不是生成的錶行和columns.Please任何人都可以在這方面幫助。在此先感謝

+0

我不明白。你可以嘗試用其他詞來解釋你的問題嗎? – hek2mgl 2013-02-12 13:59:55

+0

Implode用於將數組元素與字符串連接......這與您的數組中的多行和多列的存儲問題有關......這實際上是一個數組... – Hituptony 2013-02-12 14:02:09

+0

使數據庫正常化 – 2013-02-12 14:10:50

回答

1

好吧,所以我想我明白了一點點,但也許你應該用其他方式來傳達你的問題。

基本上我的理解是,你正在接受一個不確定的(在你有多少個複選框的範圍內)多個複選框,然後每個複選框都會產生一行。

如果你想存儲在MySQL的這些生成的行,你需要把數據上傳到數據庫

$result = mysqli_query($query, $conn); 
$row = mysqli_fetch_array($result); 

您需要設置一個類似的$結果,並儲存在它的複選框值 在這個例子中,如果最終用戶點擊保存按鈕將其插入從複選框中的值到一個變量

if(isset($_POST["savebtn"])) 
{ 
    //inserting the new information 
    $id = $_POST[""]; 
    $name = $_POST[""]; 



    //iterate through each checkbox selected 

foreach($_POST["checkbox"] as $loc_id) 
{ 
    $query = "INSERT INTO table(ID, Loc_Code) VALUES('$id', '$loc_id')"; 
    $result = mysqli_query($query, $conn); 
} 


?> 

這只是有點從另一個例子中拍攝,但你的方式了與破滅,你需要保存php sele的結果ction變量,再通過選擇

UPDATE循環分配他們的MySQL行:

好了,你在陣列中得到了他們,seelction [] - 這是件好事,現在你想檢查看是否選擇某一值...

if (in_array("move2", $_POST['selection'])) { /* move2 was selected */} 

那麼你要它放入一個字符串 - 你的權利與破滅方法是

echo implode("\n", $_POST['selection']); 

然後用foreach循環回顯出來

foreach ($_POST['selection'] as $selection) { 
    echo "You selected: $selection <br>"; 
} 
+0

謝謝,複選框插入到一個表(選項)。但是這不會插入生成的行的內容。請問你能澄清一些嗎?t – MinJ 2013-02-12 16:45:36

+0

它給了我一個錯誤「列計數不匹配在第1行值計數」當我嘗試使用此方法插入生成的表 – MinJ 2013-02-12 16:58:21

+0

開始小 - 我更新了步驟的答案 - 你想確保你的SQL插入語句與適當的值相匹配的列數,否則它會彈出列計數不匹配錯誤 – Hituptony 2013-02-12 17:00:25

相關問題