2015-02-11 103 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

相關問題