如何在mysql中存储多个行和列数组

时间:2013-02-12 13:57:28

标签: php mysql multidimensional-array

我有一系列复选框。

<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);

但这仅适用于存储所选选项,而不适用于生成的表行和列。请任何人都可以帮助解决此问题。提前致谢

1 个答案:

答案 0 :(得分: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选择的结果保存到变量中,然后通过循环选择

更新:

好的,所以你把它们放在一个数组中,seelction [] - 这很好,现在你想查看是否选择了某个值......

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

然后你想把它放到一个单独的字符串中 - 你使用了implode方法

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

然后用foreach循环回显它

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