使用2个mysql查询从1个html表单更新2个表

时间:2013-12-31 16:43:23

标签: php mysql

我正在尝试使用1表单更新数据库中的2个表。在执行查询之前会发生一些事情:

  1. 使用phoneNum搜索customers表以查看它们是否存在
  2. 如果匹配,则使用客户表中的姓名,地址,phoneNum填充预订表单。如果没有匹配,则表单字段保持为空。
  3. 点击提交,预订表格中的值将发布到addbooking.php
  4. addbooking.php中的第一个查询是INSERTS新客户(如果在之前的搜索中没有匹配)或更新现有记录(如果匹配)
  5. 第二个查询应使用相同的值将记录添加到作业表。
  6. 第一个查询正常执行INSERT或UPDATE
  7. 如果客户存在,则第二个查询有效,如果必须创建客户,则第二个查询无效。
  8. 问题在于从表单传递的cutomerId。如果从表单传递cutomerId(意味着它们存在),则第二个查询起作用。如果它们不存在则不会传递任何内容,但第一个查询会创建一个新客户,从而生成一个新的customerId。

    所以我的问题是如何从第一个查询中获取customerId并在第二个查询中使用它?我有所有代码,但希望我已经解释了问题,查询本身就足够了。非常感谢!

        $query1 =   "INSERT INTO customer (customerId, name, address, phoneNum)" . 
                "VALUES ( '$customerId','$name', '$address', '$phoneNum')" .
                "ON DUPLICATE KEY UPDATE name='$name', address='$address', phoneNum='$phoneNum'";
    
    $result = mysqli_query($dbc, $query1)
    or die('Error adding new customer.');
    //edit as per Jessica
    $customerId = mysqli_insert_id($dbc);
    
    $query2 = "INSERT INTO job (jobType, carType, customerId, phoneNum, name, address, destAdd, bookingDate, BookingTime)" . 
                "VALUES ('$jobType', '$carType', '$customerId', '$phoneNum', '$name', '$address', '$destAdd', '$bookingDate', '$bookingTime')";
    
    $result = mysqli_query($dbc, $query2)
    or die('Error adding booking.');
    

1 个答案:

答案 0 :(得分:2)

mysqli_insert_id

$customerId = mysqli_insert_id($dbc);

PS:为什么你在查询中插入原始数据而不是使用参数呢?