1

我有这段代码,它允许我从复选框中检索数据,还没有包含任何 mysql,所以你能帮我修改一下吗?

表格是这样的:

<form action="checkbox.php" method="post">
<input type="checkbox" name="checkbox[]" value="hostess_name">
<input type="checkbox" name="checkbox[]" value="hostess_familyname_en">
<input type="checkbox" name="checkbox[]" value="hostess_id">
<input type="checkbox" name="checkbox[]" value="hostess_firstname_en">
<br>
<br>
<input type="submit" name="Submit" value="Submit">
</form>

我插入的值应该是数据库字段,然后我有这个 checkbox.php 文件,它读取选定的值。

    <?php
mysql_connect("localhost", "root", "") or die(mysql_error());
echo "Connected to MySQL<br />";
?>
<?

/* and in your checkbox.php you do this: */

if(isset($_POST['Submit']))
{
echo "<pre>"; print_r($_POST);
}
$checked = mysql_real_escape_string(implode(',', $_POST['checkbox'])); 
echo $checked;
?>

如何分配给复选框值数据库字段?我想要做的是存储值并使用 implode 将它们导出到查询中..帮助我..

4

2 回答 2

2

您的 POST 变量 ($_POST['checkbox']) 实际上已经是一个数组。首先,要弄清楚您实际使用的是什么,请执行以下操作:

echo '<pre>';
print_r ($_POST['checkbox']);
echo '</pre>';

然后查看您的脚本并查看输出。您可能会看到一个包含一些键和值的数组。使用它,您可以决定如何进行。

如果是我,我会执行以下操作来完成您的任务:

$sql = "SELECT `table_id_column`, `another_column` ";
foreach ($_POST['checkbox'] as $key => $value) {
  $sql .= ", `$value`";
}
$sql .= " FROM `hostess` ORDER BY `another_colmn` ASC";

请记住,允许以这种方式修改 SQL 语句是非常糟糕的做法。在将其放入生产环境之前,您需要为此引入一些安全性。

卢克

于 2012-06-18T19:32:32.563 回答
1

利用

foreach($_POST[checkbox] as $key => $value {
    echo PHP_EOL . "Key is => " . $key . " Value is => " . $value . PHP_EOL;
}

试试这个,看看输出,你会看到自己如何进一步进行。

于 2012-06-18T19:12:40.583 回答