如何使用PHP和MySQL从多个选择列表向数据库插入数据

如何使用PHP和MySQL从多个选择列表向数据库插入数据,php,mysqli,Php,Mysqli,我有一个包含多个选择列表的表单。表单中有多个选择列表(块)。如何将多个select数据提交到数据库 我试图创建一个foreach语句,但问题是它只提交数据库中的一个选项 <?php $db = mysqli_connect('localhost','root','','trial') or die($db); if (isset($_POST['submit'])) { $marks = mysqli_real_escape_string($db,$_POST['marks'])

我有一个包含多个选择列表的表单。表单中有多个选择列表(块)。如何将多个select数据提交到数据库

我试图创建一个foreach语句,但问题是它只提交数据库中的一个选项

    <?php 
$db = mysqli_connect('localhost','root','','trial') or die($db);
if (isset($_POST['submit'])) {
$marks = mysqli_real_escape_string($db,$_POST['marks']);
$subjects= $_POST['subject'];
$farming= $_POST['farming'];
foreach ($subjects as $i) {
    $subject = $i;
    $sql = "INSERT INTO `trial_table` (`subjects`, `marks`) VALUES ('".mysqli_real_escape_string($db,$subject)."', '$marks')";
mysqli_query($db,$sql);
}
$sql1 = "INSERT INTO `trial_table` (`marks`) VALUES ('$marks')";
mysqli_query($db,$sql1);
}
 ?>
<body>
    <form method="POST" action="test.php">
    <select id="multiselect" name="farming[]" multiple="multiple" required>
    <option value="Irrigation">Irrigation</option>
    <option value="Fertilizer">Fertilizer</option>
    <option value="Pesticide">Pesticide</option>    
    </select>
    <select id="multiselect" name="subject[]" multiple="multiple" required>
    <option value="Irrigation">Technology</option>
    <option value="Fertilizer">Science</option>   
     </select>
    <div class="input-group">
        <label>Marks</label>
        <input type="number" name="marks">      
    </div>  
    <button type="submit" name="submit" class="btn">SUBMIT</button> 
      </form>
</body>
</html>`enter code here`

如果要在单行中插入数据

$subject = implode(',', $subjects);
这将返回每个主题之间带有分隔符“,”的单个字符串。 现在,您可以在单个列中插入整个


然后使用带“,”的explode函数检索它:它将为您提供相同的数组$subjects

我已经将它简化到这个级别,但唯一的问题是我在数据库中没有得到任何数据。可能有什么问题/

if <?php 
$db = mysqli_connect('localhost','root','','trial') or die($db);
if (isset($_POST['submit'])) {
$marks = mysqli_real_escape_string($db,$_POST['marks']);
$subjects= $_POST['subject'];
$others= $_POST['others'];

foreach ($others as $t){

    $sql1 = "INSERT INTO `trial_table` (`others`) VALUES ('".mysqli_real_escape_string($db,$t)."')";
mysqli_query($db,$sql1);
}

foreach ($subjects as $i){

    $sql = "INSERT INTO `trial_table` (`subjects`, marks) VALUES ('".mysqli_real_escape_string($db,$i)."' , '$marks')";
mysqli_query($db,$sql);
}


}
 ?>
<body>
    <form method="POST" action="test.php">

    <select id="multiselect" name="subject[]" multiple="multiple">
    <option value="Irrigation">Technology</option>
    <option value="Fertilizer">Science</option>   
     </select>
     <select id="multiselect" name="others[]" multiple="multiple">
    <option value="Ball">Sports</option>
    <option value="Netball">Gymics</option>   
     </select>
    <div class="input-group">
        <label>Marks</label>
        <input type="number" name="marks">      
    </div>  
    <button type="submit" name="submit" class="btn">SUBMIT</button> 
      </form>
</body>
</html>

如果您在
$\u POST['farming']中的数据是什么
$\u POST['subject']?是的,它们都是来自名为farming[]和subject[]的不同多个选择列表的数据。请随您的问题附上打印结果,我如何才能附上?如果我可以要求KDO喜欢此打印($\u POST['subject']);然后在你的页面中,你可以看到一些数据拷贝并在这里通过它们