Php 将多个复选框添加到一个数据库中
首先,我已经了解了与此相关的stackoverflow的其他问题,但我仍然不明白如何做,这就是为什么我要问这个问题,所以请不要因为我问了重复的问题而否定我 我正在尝试为我的网站链接一位家长及其子女。家长首先添加孩子的名字,然后创建关于孩子的新闻。这一切都很好,但我正在努力完成一部分,用户在该部分中勾选了哪些孩子参与了该新闻项目,然后将这些孩子的名字存储在我的数据库中 目前,代码仅输入表单中最后一个勾选的子项的childID。我需要一个链接表吗 迄今为止的代码:Php 将多个复选框添加到一个数据库中,php,mysql,checkbox,mysqli,Php,Mysql,Checkbox,Mysqli,首先,我已经了解了与此相关的stackoverflow的其他问题,但我仍然不明白如何做,这就是为什么我要问这个问题,所以请不要因为我问了重复的问题而否定我 我正在尝试为我的网站链接一位家长及其子女。家长首先添加孩子的名字,然后创建关于孩子的新闻。这一切都很好,但我正在努力完成一部分,用户在该部分中勾选了哪些孩子参与了该新闻项目,然后将这些孩子的名字存储在我的数据库中 目前,代码仅输入表单中最后一个勾选的子项的childID。我需要一个链接表吗 迄今为止的代码: <?php $con=my
<?php
$con=mysqli_connect("localhost","***","***","****");
if (isset($_POST['NewsDate'])&&isset($_POST['NewsDescription'])&&isset($_POST['Children'])){
$NewsDate= $_POST['NewsDate'];
$NewsDescription= $_POST['NewsDescription'];
$Children = $_POST['Children'];
if (!empty($NewsDate)&&!empty($NewsDescription)&&!empty($Children)){
$sql="INSERT INTO News (NewsDate, NewsDescription, Children, AccountID)
VALUES('$NewsDate','$NewsDescription','$Children','".$_SESSION['user_id']."')";
mysqli_query($con, $sql);
/* commit transaction */
if (!mysqli_commit($con)) {
print("Transaction commit failed\n");
exit();
}
} else {
echo'All fields are required';
}
}
/* close connection */
mysqli_close($con);
?>
<form action="addnews.php" method="post">
<p>News Date: <br/> <input type="text" name="NewsDate" id="datepicker"/></p>
<p>News Description (max 255 characters):<br><textarea name="NewsDescription" rows="6" cols="50" maxlength="255"></textarea></p>
<p>Children Involved: <br>
<?php
$con=mysqli_connect("localhost","pytsuemg_brodie","brodie","pytsuemg_brodie");
$result = mysqli_query($con,"SELECT * FROM Child WHERE `AccountID`='".$_SESSION['user_id']."'");
while($row = mysqli_fetch_array($result))
{
echo $row['Firstname'] . " " . $row['Surname']; ?>
<input type="checkbox" name="Children" value=" <? echo $row['ChildID']; ?>" />
<?
}
?>
</p>
新闻日期:
新闻描述(最多255个字符):
涉及的儿童:
你很容易受到伤害。由于您尚未显示您的表单或$\u POST['Children']
中的内容,我们无法真正帮助您。表单包含在代码底部OK。您的复选框名称不正确。您所有的复选框都将具有相同的名称,这意味着最后一个选中的复选框的值将显示在$\u POST中。您需要使用php的数组表示法,name=“Children[]”
让php创建一个值数组。然后您必须修改查询以处理该数组。好的,谢谢。我将如何更改查询以适应数组。我以前从未在PHP中使用过数组,所以这对我来说是全新的。您可以从规范化db表开始,并将子表信息放在单独的表中。您不希望在单个字段中以csv格式存储子ID。然后只需在$_POST['Children']上循环并将每个值插入到新的子表中。