RE: [PHP-DB] Help with MySQL Logic
| From: | Rankin, Randy | Date: | Tue, 04 Mar 2003 12:22:04 +0000 |
| Subject: | RE: [PHP-DB] Help with MySQL Logic | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-26079@lists.php.net to get a copy of this message | ||
Thanks to everyone for your help. I was able to work out the logic last
night based on your fine suggestions and all is well!
Thanks again.
Randy
> -----Original Message-----
> From: "1LT John W. Holmes" <holmes072000@charter.net>
> Sent: Monday, March 03, 2003 10:30 AM
> To: Rankin, Randy; php-db@lists.php.net
> Subject: Re: [PHP-DB] Help with MySQL Logic
>
> > A client of mine, a rail car storage company, has asked that I create a
> > PHP/MySQL application in which they will maintain and track rail cars. I
> am
> > having a bit of trouble however working through one of thier
> requirements.
> > They need to know in what position the rail car is on each track. For
> > example, they might have a track called X which will hold 30 rail cars.
> They
> > would enter the car information for 30 cars and associate each of them
> with
> > track X. If one of the car owners decides to move car 3 out of storage,
> then
> > the remaining 29 cars must be re-numbered ( ie; car 1 and 2 would remain
> and
> > car 4-30 would become car 3-29 ). In the same manner, I need to be able
> to
> > add a car to the track once an empty slot is available. For example, If
> the
> > new car goes at the front of the track then it would become car 1 and
> the
> > remaining cars, originally numbered 1-29 would become 2-30.
>
> Not sure if this helps or if you already realize this...
>
> Say you have a table that identifies the track_id and car_id. Now, you
> delete the car_id for car #3, like you've said. So, that row is deleted
> and
> you've got a hole now. You can run a query such as:
>
> UPDATE table SET car_id = car_id - 1 WHERE car_id BETWEEN 4 AND 30 AND
> track_id = XX
>
> to adjust all of the other car_id numbers.
>
> Now, say you want to add a new car to the beginning.
>
> UPDATE table SET car_id = car_id + 1 WHERE track_id = XX
>
> and then insert your new car at position #1.
>
> Throw in some checks to make sure you don't go over 30 cars and you should
> have it. You can get a count of how many cars are on a certain track with:
>
> SELECT COUNT(*) AS c FROM table WHERE track_id = XX
>
> Hope that helps. It sounds like a fun project.
>
> ---John Holmes...
>