Re: Back from the dead with a racing question!
| From: | Ashley Sheridan | Date: | Sun, 19 Jul 2009 06:50:02 +0000 |
| Subject: | Re: Back from the dead with a racing question! | ||
| References: | 1 2 3 4 5 6 7 8 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-295563@lists.php.net to get a copy of this message | ||
On Sat, 2009-07-18 at 20:36 -0400, Jason Pruim wrote:
> On Jul 18, 2009, at 5:54 PM, Phpster wrote:
>
> >
> >
> > On Jul 18, 2009, at 9:45 AM, Ashley Sheridan
> > <ash@ashleysheridan.co.uk> wrote:
> >
> >> On Fri, 2009-07-17 at 14:01 -0400, Bastien Koert wrote:
> >>> On Fri, Jul 17, 2009 at 1:54 PM, Jason Pruim<jason@jasonpruim.com>
> >>> wrote:
> >>>>
> >>>> On Jul 17, 2009, at 11:56 AM, Bastien Koert wrote:
> >>>>
> >>>>> On Fri, Jul 17, 2009 at 11:51 AM, tedd<tedd.sperling@gmail.com>
> >>>>> 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.
> >>>>
> >>>> I also just found out that unless I can convince them to host it
> >>>> off site,
> >>>> it'll be on a windows machine.... So php & mssql... Does that
> >>>> change alot?
> >>>>
> >>>> To answer some of the other questions the Log number is currently
> >>>> just an
> >>>> auto incrementing consuctive number. So an auto+increment would
> >>>> work
> >>>> perfectly. What I'm trying to avoid is:
> >>>>
> >>>> User1
> >>>> User2
> >>>>
> >>>> User1 submits to log number 12345
> >>>> User2 submits to log number 12346
> >>>>
> >>>> User1 is told their log number is 12346
> >>>> User2 is told their log number is 12346
> >>>>
> >>>> But User1 & User2 are on different computers... And if it's as
> >>>> easy as using
> >>>> the equivelant for: SELECT * FROM table WHERE UserID="User1"
> >>>> ORDER BY
> >>>> lognumber desc LIMIT 1; Then I'm good... I know how to proceed
> >>>> with writing
> >>>> it... Just need to figure out how to bill/sell it! ;)
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> PHP General Mailing List (http://www.php.net/)
> >>>> To unsubscribe, visit:
> >>>> http://www.php.net/unsub.php
> >>>>
> >>>>
> >>>
> >>> MSSQL doesn't allow limit, but you can do a
> >>>
> >>> select top 1 * from table [where] [order by lognumber desc]
> >>>
> >>> --
> >>>
> >>> Bastien
> >>>
> >>> Cat, the other other white meat
> >>>
> >> I believe more recent versions of MSSQL allow the LIMIT clause, but
> >> what's wrong with MySQL on Windows?
> >>
> >> Thanks
> >> Ash
> >> www.ashleysheridan.co.uk
> >>
> >
> > Nothing, but Jason indicated that mssql was predetermined.
>
> Absolutely right :)
>
> mssql is installed already so I'm trying to make it easy for them.
> Personally I'd go MySQL but I should branch out some anyway ;)
>
>
>
>
You'll end up regretting it ;) There doesn't seem to be any phpMyAdmin
equivalent for MSSQL, and the darn Enterprise Manager software I used at
my last job is probably one of the worst pieces of software I've ever
encountered...
Thanks
Ash
www.ashleysheridan.co.uk