这是讨论的继续,在
PHP Multiple Dropdown Box Form Submit To MySQL
它以这样一句话结束:“一旦你有了变量,创建新行就很简单了。”毫无疑问,这通常是正确的,但显然不适用于这个学习者……:-D
给出以下形式:
<form action="form.php" method="POST">
<select name="colors[]" multiple="yes" size="2">
<option>Red</option>
<option>Blue</option>
</select>
<input type="submit" value="Go!">
</form>如何创建新行?下面的脚本
foreach($_POST['colors[]'] as $color)
{
$id = mysqli_real_escape_string($link, $color);
$sql = "INSERT INTO colors SET id = '$id'";
}引发错误
Warning: Invalid argument supplied for foreach() in form.php on line ...鉴于以下内容
$colors = $_POST['colors[]'];
for ($i = 0; $i < count($colors); $i++)
{
$color = $colors[$i];
$sql = "INSERT INTO colors SET id = '$color'";
}不引发错误,但不创建行。
我在这里错过了什么琐碎的东西?
发布于 2010-02-09 00:06:52
使用:
foreach($_POST['colors'] as $color) 不需要在这里指定[],php知道它是一个数组。
发布于 2010-02-09 00:30:14
在您的foreach循环中,我没有看到您正在执行查询。您需要使用INSERT语句执行。
foreach($_POST['colors'] as $color) {
$id = mysqli_real_escape_string($link, $color);
$sql = "INSERT INTO colors SET id = '$id'";
if (!mysql_query($sql)) { // if the query encountered a problem.
die('Invalid query: ' . mysql_error());
}
}https://stackoverflow.com/questions/2222902
复制相似问题