dqhr76378 2019-01-15 19:41
浏览 62
已采纳

如何从另一个表的下拉列表中插入所选名称的ID?

I'm setting up a new simple website that it has two MySQL tables:

Client_table:

ID      Client_name
1      Alex
2      Bob
3      Clara

Order_table:

ID      Client_name
1     Bob
2     Clara
3     Bob

Using the following PHP code, the Client_name is taken by dropdown list from Client_table and add it to Order_table:

<?php
require('db.php'); \\$con = mysqli_connect('host', 'user', 'pass', 'db');
$status = "";
if(isset($_POST['new']) && $_POST['new']==1){
$client_name =$_REQUEST['client_name'];
$ins_query="insert into Order_table (`Client_name`) values ('$Client_name')";
mysqli_query($con,$ins_query) or die(mysql_error());
$status = "Added Successfully";
}
?>
<form name="form" method="post" action="">
    <select type="text" name="Client_Name" />
        <?php
        $result = $con->query("select * FROM Client_table");
        while ($row = $result->fetch_assoc())
            { echo "<option value='".$row['id']."'>".$row['Client_name']."</option>";}
        ?>
    </select>
    <p>
        <input class="btn" name="submit" type="submit" value="Add" />
    </p>
</form>

How to insert the ID of Client as Client_id in Order_table?

*NEW Order_table:

ID      Client_id      Client_name
1        2              Bob
2        3              Clara
3        2              Bob
  • 写回答

1条回答 默认 最新

  • drcrc28428 2019-01-15 19:50
    关注

    You can select from Client_table when you're doing the INSERT to get the Client ID. You should also use a prepared statement to prevent SQL injection.

    $ins_query= "INSERT INTO Order_table (Client_name, Client_id)
                SELECT Client_name, Client_id
                FROM Client_table
                WHERE Client_name = ?";
    $ins_stmt = $con->prepare($ins_query) or die($con->error);
    $ins_stmt->bind_param("s", $Client_name);
    $ins_stmt->execute() or die($ins_stmt->error);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加