RE: multiple queries, one transaction

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Well, for something like this you would need one row for each item.
I just did a db for a clothing store (with cold fusion)

itemID: 1001  // autoincrement
itemTypeID: 1 // number -- refers to "jeans"
itemDesignerID: 5 // number -- refers to designer "Antik"
itemSize: 32 // number -- refers to waist size
itemColor: 7 // number -- referes to color "blue"

each item must have its own row

itemID:1002 and 1003 could be the same designer, color and size but it
refers to a different item

I see there is a way to do consider all querys and to fail the entire
procedure if one query fails. It's a BEGIN and COMMIT statement.

mysql_query("BEGIN"); // starts the transaction
 
 
mysql_query("COMMIT"); // ends the transaction

I'm just not certain how it's used.

Thx



-----Original Message-----
From: Jason [mailto:jasonc@xxxxxxxxxxxxxxxxxx] 
Sent: Saturday, May 17, 2003 2:43 PM
To: 'mayo'
Subject: RE:  multiple queries, one transaction

I see what your saying.. you can join together select queries, but I
don't
know how to join insert queries...

>From what I know, which isn't that much,  If you feel like you need to
multiple queries to do a single task, you should relook how your setting
up
your code/db. 
Your example, for example :), you shouldn't need to do a loop to
accomplish
that task, rather you'd just have a qty table in your database that you
add
+n to when you add inventory. 

There are times when a loop is necessary, and that is ok, but for the
most
part there are usually a few ways around doing multiple queries that
should
at least be looked at :)

Hope that helps... if it doesn't, e-mail me off of the list with your
actual
situation, I may be able to help 

J


-----Original Message-----
From: mayo [mailto:mayo@xxxxxxxxxxxxxxxxxx] 
Sent: Tuesday, May 17, 2005 10:39 AM
To: 'Jason'; php-db@xxxxxxxxxxxxx
Subject: RE:  multiple queries, one transaction

Thanks, the $orderId = mysql_insert_id($result) was what I was looking
for.

But in the long run, I'm still concerned about how to group several
queries into one transaction. As for example when one wants to make
multiple inserts with one submit. 

Ex: User wants to input inventory. He's going to put in 11 new jeans
sizes 28-38

You create a loop inserting the following

itemType:jean
itemDesigner:Antik
itemSize:$i

This should all be one transaction. I would like to do this with
php/mysql.

Thx



-----Original Message-----
From: Jason [mailto:jasonc@xxxxxxxxxxxxxxxxxx] 
Sent: Saturday, May 17, 2003 1:30 PM
To: 'mayo'
Subject: RE:  multiple queries, one transaction

You could always use $orderId = mysql_insert_id($result) to pull the
autoinc
id that was created from your insert statement...

But I think your question revolves more around "how do I do a query"
then
"how do I pull the id back" 
So to answer what I think your asking...
I write my queries like this:

$query  = "INSERT into orders(
	     orderData)
	     values(
	     '$orderData')";
$result = mysql_query($query);
$orderId= mysql_insert_id($result);

Hope that helps. 

-----Original Message-----
From: mayo [mailto:mayo@xxxxxxxxxxxxxxxxxx] 
Sent: Tuesday, May 17, 2005 8:27 AM
To: php-db@xxxxxxxxxxxxx
Subject:  multiple queries, one transaction

I would like to get the itemID number (autoincrement) of the last
insert.
 
(Insert order, get last orderID number and use it elsewhere.)
 
I'm having trouble understanding how to do a transaction in mysql/php
 
Code below:
 
 
 
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die
('Error connecting to mysql');
 
$dbname = 'mail';
 
mysql_query("BEGIN"); // starts the transaction
 
mysql_query($query) or die('Error, insert query failed');
mysql_query($query2) or die('Error, select query failed');
 
 
$query = "INSERT INTO orders (orderDate) VALUES ('2005-05-17')";
$query = "SELECT max ordered FROM orders";
 
mysql_query($query) or die('Error, insert query failed');
mysql_query($query2) or die('Error, update query failed');
 
 
mysql_query("COMMIT"); // ends the transaction
 
mysql_close($conn);
?>
 
thx
 

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux