无法使用php从html多选项表单插入到mysql中

问题描述 投票:0回答:2

我对此很新,很抱歉,如果这是一个非常简单的问题。当我尝试使用多选项html表单插入mysql时,它只插入从下拉列表中选择的最后一个选项,但多次插入该选项。

HTML

<form action ="test_page.php" method="post">
     <select name= fruit[] size="8" multiple>
         <option value ="Apples" >Apples</option>
         <option value ="Oranges" >Oranges</option>
         <option value ="Bananas" >Bananas</option>
         <option value ="Grapes" > Grapes </option>
         <option value ="Strawberries"> Strawberries</option>
    </select>
    <br><br>
    <input type="submit" name="submit" value="Submit" />
</form>`

这是PHP

<?php

foreach ($_POST["fruit"] as $favourite)
{
    $sql = "INSERT INTO Fruit_table (Apples, Oranges, Bananas, Grapes) VALUES ('$favourite','$favourite','$favourite', '$favourite');";
}

if ($conn->multi_query($sql) === TRUE)  {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>"  .  $conn->error;
}

$conn->close();
?>
php html mysql option
2个回答
-1
投票

我找到了你的问题!所以,你实际上是用$sql多次设置foreach而只执行最后一次。

就这样;

foreach ($_POST["fruit"] as $favourite)
{
$sql = "INSERT INTO Fruit_table (Apples, Oranges, Bananas, Grapes) 
 VALUES ('$favourite','$favourite','$favourite', '$favourite');";
}

这是完整的工作代码!

<?php

foreach ($_POST["fruit"] as $favourite)
{
$sql = "INSERT INTO Fruit_table (Apples, Oranges, Bananas, Grapes) 
 VALUES ('$favourite','$favourite','$favourite', '$favourite');";

if ($conn->query($sql) === TRUE)  {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>"  .  $conn->error;
}
}

$conn->close();
?>

所以,我只改变直到foreach()将会在哪里。这应该工作了!


-2
投票

在名称周围添加引号。

由此:

<select name=fruit[] size="8" multiple>

对此:

<select name="fruit[]" size="8" multiple>
© www.soinside.com 2019 - 2024. All rights reserved.