2015-02-11 109 views
-1

我正在设计酒店预订系统,在插入客户信息后,我必须发回带有客户信息插入时自动生成的booking_id的确认页面。如何获取插入表的行的自动生成的id?

我的问题是如何获得在同一个PHP代码预约ID数据的插入后

请注意还不止一个人插入数据,所以我认为它无法实现通过刚刚返回插入的最后一行 请帮我解决这个问题。

我的JavaScript:

<script> 
    $(document).ready(function(){ 
     $("#register-form").validate({ 
      rules: { 
       userName: "required",       
       email: { 
        required: true, 
        email: true 
       },            
       userContactNumber: "required"      
      }, 
      messages: { 
       userName: "Please enter your Name", 
       userContactNumber: "Please enter your Mobile number",       
       email: "Please enter a valid email address",           
      }, 
      submitHandler: function(form) { 

       var uName = $('#userName').val(); 
       var mailId = $('#email').val();     
       var mobNum = $('#userContactNumber').val(); 

       $.ajax({     
        url:"http://localhost/bookRoom/book.php", 
        type:"POST", 
        dataType:"json", 
        data:{type:"booking", Name:uName, Email:mailId, Mob_Num:mobNum},         
        ContentType:"application/json", 
        success: function(response){        
         window.location.href = 'BookingConformation.html'; 
        }, 
        error: function(err){       
         window.location.href = 'error.html'; 
        } 
       }); 
       return false; // block regular submit 
      } 
     }); 
    }); 
</script> 

我的服务代码book.php中

<?php 
    header('Access-Control-Allow-Origin: *');//Should work in Cross Domaim ajax Calling request 
    mysql_connect("localhost","root","2190"); 
    mysql_select_db("hotels"); 

    if(isset($_POST['type'])) 
    { 
     if($_POST['type']=="booking"){ 
      $name = $_POST ['Name'];    
      $mobile = $_POST ['Mob_Num']; 
      $mail = $_POST ['Email'];    
      $query1 = "insert into customer(userName, userContactNumber, email) values('$name','$mobile','$mail')"; 
      $query2 = "insert into booking(cust_name, cust_email, cust_mobile) values('$name', '$mail','$mobile')";   

      $result1=mysql_query($query1); 

      $result2=mysql_query($query2); 
      echo json_encode($result1); 
     } 
    } 
    else{ 
     echo "Invalid format"; 
    } 
?> 
+0

等什么,现在是你的问题? – 2015-02-11 11:41:11

+0

@CBroe,对不起,我更新请检查它.. – geeks 2015-02-11 11:44:41

+0

@noob,对不起,我更新请检查它 – geeks 2015-02-11 11:45:06

回答

1

将其插入到数据库后U将与mysql_insert_id()得到它。它会自动给你回到最新的自动递增ID。更好的一个 - 使用PDO或MySQLI,因为mysql_insert_id()已被弃用。

0

可以使用mysql_insert_id()函数在PHP中终于找到插入ID

mysql_query("INSERT INTO mytable (product) values ('kossu')"); 
printf("Last inserted record has id %d\n", mysql_insert_id()); 
0

得到最后插入的ID与此并使用

$last_id = $conn->insert_id; 
0

你可以使用mysql_insert_id()用于获取插入的ID

$result1=mysql_query($query1); 
    echo mysql_insert_id() 
0

不要回显查询结果。

使用:mysql_insert_id()mysqli_insert_id()返回预订ID。 注意:在使用mysql_insert_id要小心,因为它在PHP 5.5真实贬值,将被删除未来

$id = mysql_insert_id(); 
echo json_encode($id); 

然后在你的ajax成功函数使用PHP文件,而如果HTML,并通过这个变量:

success: function(response){        
         window.location.href = "BookingConformation.php?bookingID='+response+'"; 
        } 

然后在您bookingConfirmation.php文件使用GET方法来获取这个变量:

$bookingID=$_GET['bookingID']; 
eco $bookinID; //gives your booking id 
+0

感谢您的答复,在预订表b_id是预订ID,所以我们如何返回只写$ ID = mysql_insert_id( );谢谢 – geeks 2015-02-11 11:54:16

+0

如果表b_id具有自动递增属性(即只增加一个数字后一个ex:1,2,3),则mysql_insert_id();是一个sql函数返回最后插入的ID – 2015-02-11 11:57:14

+0

否则,如果您使用随机值生成预订ID,则必须将其插入到使用插入语句中的预订表中,并将该值传递给成功函数 – 2015-02-11 11:58:22

相关问题