Re: MySQL execution order?

From: Date: Thu, 22 Feb 2001 22:41:43 +0000
Subject: Re: MySQL execution order?
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-41227@lists.php.net to get a copy of this message
mysql executes the queries in the order it recieves them, (so if your program's logic executes a select before an update, you'll never see results from the update in your select... at least not normally :) Are you able to access the MySQL monitor program? if so, verify that the data really does exist before running your script (maybe the SELECT is failing beucase the actual data is incorrect, not the code...) go into the monitor and execute your SELECT statement, then run your PHP script... if the results still disagree, post some more information... ----- Original Message ----- From: "Don Johnson" <don_mail2@mwtb.org> To: <php-general@lists.php.net> Sent: Wednesday, February 21, 2001 5:19 PM Subject: [PHP] MySQL execution order? > Since I've always found my answers in the archive, this is my first post, so > please excuse any blunders... > > I'm trying to download info from a table as a tab-delimted text file. This > part works fine. (By disabling the UPDATE statement in the code sample > below, I can get the same data file sent time after time.) > > I need to keep the data in the table for future reference, and only want to > download each new record once, so I added a DateTime field that gets updated > after downloading. Then searching on that field gives me just the records > that haven't been downloaded yet. > > The weird part is that it seems like the LAST MySQL command (UPDATE) gets > executed before the FIRST one (SELECT), because the SELECT statement comes > up with 0 rows. > > > Here's some selected (modified) parts of the PHP code: > > ------------------------ > First, I perform the SQL: > SELECT * from db_table WHERE (DownloadedDateTime = '0000-00-00 00:00:00') > > Then, it parses and sends the info: > while ($row = mysql_fetch_row($result)) { > while (list($key, $val) = each($row)) { > $val = ereg_replace("[\n\r\t]"," ",$val); > $val = ereg_replace(" {2,}"," ",$val); > echo $val . "\t"; > } > //end of line > echo "\r"; > } > > Then I perform the SQL: > UPDATE LOW_PRIORITY db_table SET DownloadedDateTime=CURRENT_TIMESTAMP WHERE > (DownloadedDateTime = '0000-00-00 00:00:00') > -------------------------- > > Any ideas why the rows are getting the DownloadedDateTime field updated > before they get SELECTed? > > > Thanks, > > Don Johnson > don_mail2@mwtb.org > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, e-mail: php-general-unsubscribe@lists.php.net > For additional commands, e-mail: php-general-help@lists.php.net > To contact the list administrators, e-mail: php-list-admin@lists.php.net >

« previous php.general (#41227) next »