Re: Back from the dead with a racing question!

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

 



On Fri, Jul 17, 2009 at 11:51 AM, tedd<tedd.sperling@xxxxxxxxx> wrote:
> At 11:12 AM -0400 7/17/09, Jason Pruim wrote:
>>
>> Hi everyone!
>>
>> So some of you may have noticed that I have been away for quite awhile...
>> Been trying to get settled (Moved across the country) and getting a job.
>>
>> And now that that is done I have a question about a project that I might
>> be doing for my current employer and want to do it properly.
>>
>> If all goes through, I'll be writing an online database that upwards of 10
>> people will be using at various times through out the day. Basically, in a
>> form they fill out a model number, customer name, phone number etc. etc..
>> And then submit the form. After submitting they need to write the log number
>> on some paperwork. If I have 2 people submit the form at the same time, I'm
>> thinking I could end up with a race condition and they might get the wrong
>> log number (The log number is simply a consecutive record number)
>>
>> Do I need to be reading up on locking tables/rows? Or in my situation as
>> I've briefly described it do I not have to worry about it? Or is there a
>> third door with the magic bullet that will solve all my problems? :)
>>
>> Any advice is greatly appreciated as always, RTFMing is good as well, as
>> long as M is defined :)
>>
>> I'm not afraid of google either, just need the right terms to hit it with
>> so I don't go into "search overload" as the commercials for a rival search
>> engine claim :)
>>
>> Thanks Everyone!
>
> Jason:
>
> Welcome back.
>
> Clearly if you have two or more people checkout the same record at the same
> time and each edits the record then you ARE going to have problems when each
> updates the record.
>
> You can solve this problem by using transactions -- here's a link:
>
> http://dev.mysql.com/doc/refman/5.0/en/lock-tables-and-transactions.html
>
> When someone is editing a record, you also need to be able to show the next
> person(s) that the record they want is currently busy and not available.
> However, I'm not sure as to how to notify the next user that the table is
> locked via php. Perhaps a table status might provide that information. If
> so, then use that to notify the next user.
>
> As for your log of activity, just create a another record (with an
> auto_increment index) in your activity log table and update that record with
> the data you need to record, such as user id, timestamp, what record they
> accessed and whatever else you want after the transaction is completed.
>
> Cheers,
>
> tedd
>
> --
> -------
> http://sperling.com  http://ancientstones.com  http://earthstones.com
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

As a further note to tedd's reply on transactions, you will need to
use the INNODB engine in mysql should you want to use transactions.
Transactions here are done a row locking level not table so you should
have fewer issues.

-- 

Bastien

Cat, the other other white meat

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



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux