Php 将select表单的值插入mysql

Php 将select表单的值插入mysql,php,mysql,select,insert,option,Php,Mysql,Select,Insert,Option,我有一个将车辆添加到数据库的表单,表单中有两个下拉选择字段,“Make”和“Model” 当我从一个选项中选择一个选项将其插入数据库中的库存表时,品牌“ID”或型号“ID”将插入车辆品牌/型号,而不是车辆品牌的名称,因此将插入“3”而不是“Volkswagen” 这是我的一些代码 <form action="addstock.php" method="post" enctype="multipart/form-data"> <div class="make"> <

我有一个将车辆添加到数据库的表单,表单中有两个下拉选择字段,“Make”和“Model”

当我从一个选项中选择一个选项将其插入数据库中的库存表时,品牌“ID”或型号“ID”将插入车辆品牌/型号,而不是车辆品牌的名称,因此将插入“3”而不是“Volkswagen”

这是我的一些代码

<form action="addstock.php" method="post" enctype="multipart/form-data">

<div class="make">
<div id="field1">Make:</div> <div id="field2">
<select name="mke" id="mke">
        <?php
            include 'includes/db2.php';
            $SQL = "SELECT * FROM make";
            $query = mysqli_query($con, $SQL);
            while ($row = mysqli_fetch_array($query)) {
                $res = "<option ";
                $res .= "value='".$row['code']."'>";
                $res .= $row['vehicle_make'];
                $res .= '</option>';
                echo $res;
            }
        ?>
    </select>
</div>
</div>
</div>

    <script src="jquery/jquery-2.1.4.min.js"></script>
<script>
$(document).ready(function(){
    $('#mke').change(function(){
        var code = $(this).val();
        var data = 'code='+code;

        $.ajax({
            type : "POST",
            url  : "fill.php",
            data : data,
            cache: false,
            success: function(html)
            {
                $('#mdl').html(html);
            }

        });
    });
});

</script>
模型下拉选项的代码,其余代码在另一个页面fill.php上

<div id="field1">Model:</div> <div id="field2">
<select name="mdl" id="mdl">
    <option selected="selected">Model</option>    
</select>
</div>
</div>
fill.php页面

if(isset($_POST['code']))
{
        $SQL = "SELECT * FROM model WHERE MakeCode = '".$_POST['code']."'";
        $query = mysqli_query($con, $SQL);
        if(mysqli_num_rows($query) == 0 )
        {
            echo '<option>No Results</option>'; 
        } else {
            while ($row = mysqli_fetch_array($query)) {
                $res = "<option ";
                $res .= "value='".$row['id']."' >";
                $res .= $row['vehicle_model'];
                $res .= "</option>";
                echo $res;
            }
        }
}   else {
    echo '<option >error</option>';
}

?>
回到addstock.php页面,这里是插入代码

 <?php

if(isset($_POST['addstock'])){

    $mke = $_POST['mke'];
    $mdl = $_POST['mdl'];

    $addstock = "insert into stock (veh_make,veh_model) values('$mke','$mdl')";

    $addsto = mysqli_query($con, $addstock);

    if($addsto){

        echo "<script>alert('Vehicle has been added')</script>";
        echo "<script>window.open('addstock.php','_self')</script>";
    }
}
我对php相当陌生,不知道如何插入名称而不是id,因为当我试图在另一个页面上显示车辆时,id显示为34,而不是大众高尔夫

希望你明白我的意思


非常感谢您的帮助

您可以插入SELECT语句的结果,该语句将获取make和model:

"insert into stock (veh_make,veh_model) select make.vehicle_make, vehicle_model FROM make, model WHERE make.id=$mke AND model.id=$mdl"

但这是错误的DB设计。库存不应包含品牌和型号名称,而应包含ID、对其他表中行的引用或外键。

替换$res.=value='.$row['code'.>;带$res.=value='.$row['vehicle_make'.].>;类似的替换应该应用于model select Box,您应该存储一个id,并有一个用于显示的id名称表。当您使用ajax时,不需要操作。。根据您的代码,表单标记也是不相关的。您没有发布表单..MakeCode在您的表中是唯一的值吗??