Create a unique key on the id, or date,id.
If you insert first, and update if the insert fails, you don't have to
lock anything. Inserts and updates are atomic.
"Opec Kemp ( Ozemail )" wrote:
>
> Basically you'd have a DB set up like this:
>
> hits_table main_table
> +--------------+ +-----------------+
> | id | (long int) <------------- | id |
> +--------------+ +-----------------+
> | num_hits | (long int) | foobar |
> +--------------+ +-----------------+
> | date_created | (date/time) | bar |
> +--------------+ optional! :) +-----------------+
>
> <Untested code>
> So when you want to create a new record you'd do:
>
> 1) Lock the table "hits_table"
> 2) Check to see if the ID already exists in the hits_table
> SELECT * FROM hits_table WHERE id = (your id here)
> If Id exists, then just update
> UPDATE hits_table SET num_hits = num_hits + 1 WHERE id = (your
> id)
> else
> INSERT INTO hits_table(id, num_hits) VALUES (123, 1);
> end if
>
> Optionally when you check to see if the ID exists, you might want
> to
> check for today's date as well. That is if you wanted to keep the
> histical records of all your hits. This will come in handy
> when you do your reporting ie you can get a break down of all
> hits per day, month, year etc etc. So do that your SQL
> would be something like
>
> SELECT * FROM hits_table WHERE id = (your id here) AND
> Date(date_created) = CURRDate()
>
> If Id exists, then just update
> UPDATE hits_table SET num_hits = num_hits + 1
> WHERE id = (your id) AND TO_DAYS(date_created) = TO_DAYS(NOW());
> else
> INSERT INTO hits_table(id, num_hits, date_created) VALUES (123,
> 1, NOW());
> end if
>
> 3) Unlock the table "hits_table"
>
> </Untested code>
>
> HTH
>
> > Opec,
> > Thanks for the response. I will lock the table. That
> > would be important
> > because I have 3 different websites pulling the same info.
> > Do you have an
> > example that would help me know how to get started setting
> > that up or a link
> > perhaps?
> > Thanks a ton.
> > Alan
> >
>
> ---------------------------------------------------------------------
> Before posting, please check:
> http://www.mysql.com/manual.php (the manual)
> http://lists.mysql.com/ (the list archive)
>
> To request this thread, e-mail <[EMAIL PROTECTED]>
> To unsubscribe, e-mail
><[EMAIL PROTECTED]>
> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
---------------------------------------------------------------------
Before posting, please check:
http://www.mysql.com/manual.php (the manual)
http://lists.mysql.com/ (the list archive)
To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php