加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 将下拉菜单中的多个值保存到数据库中

发布时间:2020-12-13 22:53:53 所属栏目:PHP教程 来源:网络整理
导读:我有一个包含下拉列表的表单.我希望该用户应该能够从该下拉列表中选择多个值 form class="form-horizontal" role="form" action="add.php" enctype="multipart/form-data" method="post" div class="form-group" label class="col-lg-4 control-label"Name/l
我有一个包含下拉列表的表单.我希望该用户应该能够从该下拉列表中选择多个值

<form class="form-horizontal" role="form" action="add.php" enctype="multipart/form-data" method="post">
        <div class="form-group">
            <label class="col-lg-4 control-label">Name</label>
                <div class="col-lg-6">
                    <input class="form-control" value="" type="text" name="name" >
                </div>
        </div>

        <div class="form-group">
            <label class="col-lg-4 control-label">Address</label>
                <div class="col-lg-6">
                    <input class="form-control" value="" type="text" name="address" >
                </div>
        </div>

         <div class="form-group">
            <?php
            $servername = "localhost";
            $username = "root";
            $password = "";
            $dbname = "db";

            // Create connection
            $con = mysqli_connect($servername,$username,$password,$dbname);
            // Check connection
            if (!$con) {
                die("Connection failed: " . mysqli_connect_error());
            }
            echo "<label class='col-lg-4 control-label'>Student</label>";
            echo "<div class='col-lg-6'>";
            $sql = "SELECT student FROM student";
            $result = $con->query($sql);

            echo "<select class='form-control' name='student' multiple>";
            while($row = $result->fetch_assoc()) {
            echo "<option value='" . $row['student'] . "'>" . $row['student'] . "</option>";
            }
            echo "</select>";
            echo"</div>";
        ?>
        </div>

        <div class="form-group">
            <?php
                $servername = "localhost";
                $username = "root";
                $password = "";
                $dbname = "db";

                // Create connection
                $con = mysqli_connect($servername,$dbname);
                // Check connection
                if (!$con) {
                    die("Connection failed: " . mysqli_connect_error());
                }
                echo "<label class='col-lg-4 control-label'>Subject</label>";
                echo "<div class='col-lg-6'>";
                $sql = "SELECT subject FROM subject";
                $result = $con->query($sql);

                echo "<select class='form-control' name='subject' multiple>";
                while($row = $result->fetch_assoc()) {
                echo "<option value='" . $row['subject'] . "'>" . $row['subject'] . "</option>";
                }
                echo "</select>";
                echo"</div>";
            ?>
        </div>

        <div class="form-group">
            <?php
                $servername = "localhost";
                $username = "root";
                $password = "";
                $dbname = "db";

                // Create connection
                $con = mysqli_connect($servername,$dbname);
                // Check connection
                if (!$con) {
                    die("Connection failed: " . mysqli_connect_error());
                }
                echo "<label class='col-lg-4 control-label'>Hobby</label>";
                echo "<div class='col-lg-6'>";
                $sql = "SELECT hobby FROM hobby";
                $result = $con->query($sql);

                echo "<select class='form-control' name='hobby' multiple>";
                while($row = $result->fetch_assoc()) {
                echo "<option value='" . $row['hobby'] . "'>" . $row['hobby'] . "</option>";
                }
                echo "</select>";
                echo"</div>";
            ?>
        </div>

        <div class="form-group">
            <label class="col-md-3 control-label"></label>
                <div class="col-md-8">
                    <input class="btn btn-primary" value="Save Changes" type="submit" name="submit">
                </div>  
        </div>
</form>

add.php

<?php
include('admin_session.php');

$con=mysqli_connect("localhost","root","","db");
// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}


$name = mysqli_real_escape_string($con,$_POST['name']);
$address = mysqli_real_escape_string($con,$_POST['address']);
$student = mysqli_real_escape_string($con,$_POST['student']);
$subject = mysqli_real_escape_string($con,$_POST['subject']);
$hobby = mysqli_real_escape_string($con,$_POST['hobby']);


$sql="INSERT INTO class (name,address,student,subject,hobby) VALUES ('$name','$address','$student','$subject''$hobby')";

if (!mysqli_query($con,$sql)) {
  die('Error: ' . mysqli_error($con));
}
header("Location: list.php");
mysqli_close($con);


  exit;
?>

我希望在从下拉列表中选择多个值后,它们应该保存在具有名为class的表的数据库中.表名为class的视图是

id name  address student subject hobby
1   a        s     t     y       j
2   b        d     i     g       d

问题是,虽然我能够选择多个值,但只有单个值存储在数据库中

P.S我想我应该以更好的方式解释我的问题,所以我更新了我的帖子

解决方法

将值存储在select选项中的数组中

echo "<select class='form-control' name='student[]' multiple>"//it will store selected value in array

在循环内运行查询

foreach ($_POST['student'] as $students)

{
$student = mysqli_real_escape_string($con,$students);//use mysqli escape here

$sql="INSERT INTO class (students) VALUES ('$student')";        

}

在关闭表单之前和while循环之后添加此行

<input type="submit" name="submit" value="submit">

并记住,当你使用mysqli时使用bindparam以及mysqli不会自动保护你.

检查此链接MySQL vs MySQLi when using PHP

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读