On Jul 18, 2009, at 9:45 AM, Ashley Sheridan
<ash@xxxxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxx>
wrote:
On Jul 17, 2009, at 11:56 AM, Bastien Koert wrote:
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.
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.
Bastien
Sent from my iPod
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php