【发布时间】:2014-06-29 22:50:06
【问题描述】:
我在解决嵌套循环时遇到了一些问题。我有一个将一系列数据发送到 mysql 数据库的表单。我使用了一个while函数,它可以正常工作。但是现在我为每个条目都有一个checkbox 选项,这就是我的问题。
复选框应发送到另一个表,每行带有 id、系列 ID 和 checkbox。
但我所能做的就是让第一个系列的答案在其他系列中重复。
这就是我想要的:
Lance 1
Checkbox 1
checkbox 3
checkbox 4
Lance 2
checkbox 2
checkbox 3
Lance 3
checkbox 1
checkbox 2
checkbox 3
This is what I get
Lance 1
Checkbox 1
checkbox 3
checkbox 4
Lance 2
Checkbox 1
checkbox 3
checkbox 4
Lance 3
Checkbox 1
checkbox 3
checkbox 4
到目前为止我的循环代码:
$i=0;
$elements = count($lance);
while ($i < $elementss) {
$query = "INSERT INTO
mapa_bordo_lance
(id_mb, lance, data_lance, lat, lon, anzol, isca, hora_lan, hora_rec, ave_capt, mm_uso)
VALUES
('$id_mb', '$lance[$i]', '$data_lance[$i]', '$lat[$i]', '$lon[$i]', '$anzol[$i]', '$isca[$i]', '$hora_lan[$i]', '$hora_rec[$i]',
'$ave_capt[$i]', '$mm_uso[$i]')";
$result = mysql_query($query, $link);
$y = 0;
$elementss2 = count($checkbox);
while ( $y < $elements2) {
$query = "INSERT INTO mapa_bordo_mm (id_mb, lance, mm)
VALUES ('$id_mb', '$lance[$y]', '$medida_metiga[$y]')";
$result = mysql_query($query, $link);
$y++;
}
$i++;
}
【问题讨论】:
-
感谢您提供以上信息!不过,我确实有一个问题:您的
$checkbox变量在哪里设置?此外,对于未来,您可能希望在 SQL 查询中使用名为“prepared statements”的东西(至少出于安全原因。) -
$checkbox 来自表单,其中有 4 个选项,由 $_POST["checkbox"]; 给出。这是你问的吗?顺便说一句,我会看一下并考虑你对准备好的陈述的建议。非常感谢。
-
没问题!感谢您提供额外信息;我只是想查明为什么结果看起来不像你想要的那样。另一个问题:
$lance变量代表什么? (或者换句话说,如果复选框选项只有四个选项,那么单个表单提交的这些值怎么可能不同?) -
当然,我使用粘贴代码使其更容易。复选框的真实名称是medida_metiga。我在这里进行了更改,以便每个人都更容易阅读。我从表格中发布了一些代码。链接是paste.ideaslabs.com/show/yUhMStlnZ1
-
是的,第一行是公共信息,下面是渔船旅行期间发生的 3 个事件。 “medida_metiga”是复选框中的变量。当我单击按钮添加一个新事件时,这个 var 在前面添加一个 id,以区别于其他事件。所以它的事件 1,“medida_metiga”,事件 2,“medida_metiga0”,事件 3,“medida_metiga1”等等。我认为这就是问题所在。但我还没有弄清楚。 paste.ideaslabs.com/show/mdpDmTbR5b