PHP多选表单插入多个[重复]
Posted
技术标签:
【中文标题】PHP多选表单插入多个[重复]【英文标题】:PHP multiple select form to insert multiple [duplicate] 【发布时间】:2020-02-24 11:08:43 【问题描述】:我添加了一个选择表单,人们可以在其中选择他们的狗获得的奖励。问题是它只在数据库中插入一个选项,并且它是一个多选。允许人们在选择框中添加所有选项。
$query = "UPDATE dogs SET ";
$query .="dog_name = '$dog_name', ";
$query .="affix = '$affix', ";
$query .="owners = '$owners', ";
$query .="sire = '$sire', ";
$query .="dam = '$dam', ";
$query .="dob = '$dob', ";
$query .="sex = '$sex', ";
$query .="award = '$award', ";
$query .="champ = '$champ', ";
$query .= "dog_photo = '$dog_photo' ";
$query .= "WHERE dog_id = $the_dog_id ";
$update_dog = mysqli_query($connection,$query);
<select class="form-control" name="award" multiple="multiple" data-plugin-multiselect data-plugin-options=' "maxHeight": 200, "enableCaseInsensitiveFiltering": true ' id="ms_example6">
<option value="JW">JW</option>
<option value="BOY">Bulldog Of Year</option>
<option value="BOY">Crufts Champion</option>
<option value="JC">Junior Champion</option>
</select>
【问题讨论】:
您的代码易受 SQL 注入攻击。您应该使用准备好的语句。 首先,您应该使用类似 var_dump($_POST) 的方式查看您的发布数据。其次,您的数据库设计没有经过深思熟虑。我们知道您想要“众多”奖项中的一个,但是您有所有者(超过 1 个?)等。您知道您将如何处理这些吗?而且我猜你重复的 BOY 选项值不同的名字只是一个错字,也会给你带来悲伤。 是的,男孩是一个错字。我同意数据库设计很混乱,没有经过深思熟虑。这是一个狗展结果网站,其想法是显示狗的信息,其中一部分将根据他们获得的奖项显示图像。 【参考方案1】:循环遍历它。
假设你的表单是一个 POST 请求,将字段命名为数组
name="award[]"
然后遍历每个条目。
foreach($_POST['award'] as $award)
$query = "UPDATE dogs SET ";
$query .="dog_name = '$dog_name', ";
$query .="affix = '$affix', ";
$query .="owners = '$owners', ";
$query .="sire = '$sire', ";
$query .="dam = '$dam', ";
$query .="dob = '$dob', ";
$query .="sex = '$sex', ";
$query .="award = '$award', ";
$query .="champ = '$champ', ";
$query .= "dog_photo = '$dog_photo' ";
$query .= "WHERE dog_id = $the_dog_id ";
$update_dog = mysqli_query($connection,$query);
【讨论】:
怎么了,为什么要投反对票? 很接近了。您的第一个答案可以提供所有选择。 OP 需要知道如何使用 var_dump() 或其他东西查看 $_POST 以查看发生了什么。我认为问题在于为每个奖项创建一个全新的重复条目。几乎需要一个奖项表来列出实际的奖项,并需要一个 dogs_awards 连接表来将一只狗与它的一对多可能的奖项联系起来。 您正确的蒂姆对此有另一种看法,我需要从更好的数据库设计开始。所以我要建立一个奖项表,然后对狗表进行内部连接。以上是关于PHP多选表单插入多个[重复]的主要内容,如果未能解决你的问题,请参考以下文章
通过html和php表单将数据插入MySQL数据库时遇到问题[重复]