Re: grabbing from multiple tables
| From: | Karl DeSaulniers | Date: | Fri, 30 Apr 2010 20:54:42 +0000 |
| Subject: | Re: grabbing from multiple tables | ||
| References: | 1 2 | Groups: | php.db |
| Request: | Send a blank email to php-db+get-47108@lists.php.net to get a copy of this message | ||
To elaborate a little more,
In essence, the options and the option groups will be added to the database by an admin,
the products will be added by admins and employees alike.
When an employee goes to add a product, I want them to be able to choose from a dropdown
or a table with names and radio buttons or checkboxes to select the options for that product.
Selecting the option will corolate their option groups when selected.
The productID, optionID and optionGroupID will be stored in the productoptions table when the product gets submitted.
That simple. Or I think that simple.. :)
Karl
On Apr 30, 2010, at 2:59 PM, David Murphy wrote:
-----Original Message----- From: Karl DeSaulniers [mailto:karl@designdrumm.com] Sent: Friday, April 30, 2010 1:50 PM To: php-db@lists.php.net Subject: Re: [PHP-DB] grabbing from multiple tables No, please confuse me. I need to know this stuff. @Peter thanks for that introduction to foreign keys. Since my productoptions table is based off of items in products, optionGroups and options, would I use foreign keys for this? @DZvonko Thanks for trying to protect me, but I am a big boy. :) Do you have an example of how this JOIN works? Since my productoptions table is based off of items in products, optionGroups and options, would I use JOIN for this? And how? I am looking for the quickest and easiest obviously, but not against learning the longer and harder. I just really wanted to know how to use the foreign key in a real situation. If JOIN is a more viable solution, I'm all ears. Any examples or tutorials someone can send me? Thanks, Karl On Apr 30, 2010, at 6:41 AM, DZvonko Nikolov wrote:Karl DeSaulniers Design Drumm http://designdrumm.comHi, don't confuse the guy. Just use JOIN clause and you will be fine. Check for the right syntax and don't complicate more. He said he is quite new, so discuss about foreign keys will only confuse him. Use JOIN and pure SQL and you will be fine. Cheers DZvonko --- On Fri, 4/30/10, Peter Lind <peter.e.lind@gmail.com> wrote: From: Peter Lind <peter.e.lind@gmail.com> Subject: Re: [PHP-DB] grabbing from multiple tables To: "Karl DeSaulniers" <karl@designdrumm.com> Cc: "php-db@lists.php.net" <php-db@lists.php.net> Date: Friday, April 30, 2010, 12:31 PM On 30 April 2010 12:26, Karl DeSaulniers <karl@designdrumm.com> wrote:Karl DeSaulniers Design Drumm http://designdrumm.com Karl I am finding it hard to grasp why you are doing things this way why not have A products table with enums for size/color? Then on the edit page, you can read the product tables schema to get the enum options and explode them in PHP... Aka $tData=$db->QuerryToArray("desc products"); $tSizes = explode(",",$tData['Sizes']); $tColors = explode(",",$tData['Colors']); $objSmarty->assign("AvailableColors",$tColors); $objSmarty->assign("AvailableSizes",$tSizes); .... Then in the post system... $ProductSettings=$db-QueryToArray("select * from products where id='{$this->CurrentProductID}'"); $NewProductSettings=$this->GetProductEditInputs(); Foreach ($NewProductSettings as $Setting=>$Value) If($ProdcutSettings[$Setting] !== $Value) $tUpdates[$Setting]=$Value; Return ($db->UpdateFromArray("products",$tUpdates,"id='{$this-CurrentProductID}'") )? TRUE : FALSE; Since the table would be using an ENUM or SET the column size is very small but also very granular. I think breaking the tables apart is actually more complicated than its worth for your needs.Thanks Peter. So what is the logic behind foreign keys? Why use them?Constraints. When using, for example, the InnoDB engine in MySQL, you can set foreign key fields on tables. These ensure that your record will always be bound to a proper record in the connected table - so, for instance, you won't find yourself in the situation that you have deleted a record from table1 but table2 still references the table1 record. Also, they're very useful for tying models together automatically, as you can deduce relationships between models by foreign keys, for instance (this is simplified but covers a lot of cases). Regards Peter --<hype> WWW: http://plphp.dk / http://plind.dk LinkedIn: http://www.linkedin.com/in/plind Flickr: http://www.flickr.com/photos/fake51 BeWelcome: Fake51 Couchsurfing: Fake51 </hype> --PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php