views:

28

answers:

2

I have a page in which there is an if...else loop for processing of input data, this page is reverted two times when submitted, that is when a button called "Continue" is clicked and and second time "Add to cart".... Now in this case when Button "Continue" is clicked then the if loop is executed in which data is inserted in the Database, and as the refreshes I get the display of all the input data and this time another button "Add to cart" is obtained.. when Add to cart is clicked the code included in the else condition/loop part is executed..

Now here my question is as if the data is initially inserted in Ifpart and then later else is executed, so can i use the function mysql_insert_id() in else part to fetch the data last inserted in the if part?

Below is the type of code I am talking about:

If(Button Continue is clicked)
{
  insert query for a product table......
}
else Button Add to Cart is Clicked
{
  mysql_insert_id(); to fetch last id inserted in the above above loop/condition.. 
}

So can get the last inserted id in else part?

+1  A: 

If I understand your scenario, then no. mysql_insert_id (and its mySQL cousin LAST_INSERT_ID()) will return the last insert ID valid for the current connection only. That means that if you switch to the next page, a new connection will be established and insert_id() won't work.

A workaround may be putting the insert ID into a session variable right after making the query - it will be available in the other pages then. (Just be careful when a user has multiple tabs/windows open and makes two bookings at once - make sure you use some kind of identifier for each booking process.)

Pekka
+1  A: 

so can get the last inserted id in else part?

You can't. The only place you should be trying to retrieve the insert_id is just after performing the INSERT. You should never store transaction specific data in the session - so if you have multiple insert ids and need to pass this information between different pages then the records should reference a single 'master' record (e.g. shopping basket) since this does not change in its lifetime it would be safe to store the identifier for this record in the session.

C.

symcbean