【发布时间】:2013-11-20 14:23:51
【问题描述】:
更新: 复选框数组起作用并填充适当的数据。现在我需要将复选框数组中的数据插入 MySQL。这段代码出了点问题:
if(!empty($_POST['check1'])) {
foreach($_POST['check1'] as $check) {
$exclude_arr[] = $check;
for ($j = 0; $j < count($exclude_arr); $j++){
$exclude = $exclude_arr[$j];
$sql = 'INSERT INTO exclude (name) VALUES ('.$exclude.')';
$dbhc->query($sql);
}
}
}
上一页:我有一个 HTML 表格,最后一列中有一组复选框。我想获取所有选中的复选框并将它们的值插入到 MySQL 表中。复选框的值是从不同的 MySQL 表中提取的名称。我在遍历复选框数组时遇到问题。
<?php
$dbhc = new mysqli('localhost','user','password','database') or die(mysql_error());
echo "<form action=\"file.php\" method=\"post\">
<table border='0'>
<tr>
<th>strategygame</th>
<th width='130px'>approachpath</th>
<th width='130px'>universe</th>
<th width='130px'>strategylevel</th>
<th width='130px'>capacity</th>
<th width='130px'>exclude</th>
</tr>";
while($row = mysqli_fetch_array($result)){
$localcounter = $localcounter + 1;
echo "<tr>";
echo "<td>" . $row['strategygame'] . "</td>";
echo "<td align='center'>" . $row['approachpath'] . "</td>";
echo "<td align='center'>" . $row['universe'] . "</td>";
echo "<td align='center'>" . number_format($row['strategylevel'], 0, '.', ',') . "</td>";
echo "<td align='center'>" . number_format($row['capacity'], 0, '.', ',') . "</td>";
echo "<td align='center'><input type=\"checkbox\" name=\"check1[{$row['id']}]\" value=\"{$row['strategygame']}\"/></td>";
echo "</tr>";
}
echo "</table>
<input type=\"submit\" value=\"Save Selection\"/>
</form>";
if(!empty($_POST['check1'])) {
foreach($_POST['check1'] as $check) {
$exclude_arr[] = $check;
for ($j = 0; $j < count($exclude_arr); $j++){
$exclude = $exclude_arr[$j];
$sql = 'INSERT INTO exclude (name) VALUES ('.$exclude.')';
$dbhc->query($sql);
}
}
}
?>
【问题讨论】:
-
在您的 PHP 错误日志中是否出现错误,foreach 的参数无效?
-
@AliExalter:我的 PHP 错误日志中出现此错误:
[20-Nov-2013 09:01:20] PHP Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/user/public_html/website/folder/file.php on line 21 -
这不是这个文件。如您上面的代码中,您的表单操作是 file.php 并且循环不在 file.php 中,它在具有表单的页面上。另外我注意到你的
INSERTQUERY 有$name,这是从哪里来的。 -
@AliExalter:$name 已更改为 $exclude。如何协调表单和循环?
-
如果循环和表单在同一页面上,那么您的表单应该在循环所在的同一页面上提交(表单操作)。第一次加载页面时,它没有获取 POST 数据。它仅在表单提交时获取。您的表单正在向 file.php 发送 POST 数据。这段代码来自 file.php 吗?