nickholt1972 Posted September 23, 2006 Share Posted September 23, 2006 THE PROBLEM: I'm developing an online shop using PHP and MySQL. I've got products and each product might have different sizes, colours, etcI have two tables: [b]products[/b] and [b]productdetails[/b]When i list these in my shop I want it to say (e.g.)[i]Product 1:Colour: white, Size: smallColour white, Size: large[/i]But what i'm getting is[i]Product 1:Colour: white, Size: smallProduct 1:Colour white, Size: large[/i]This is my SQL Query and the PHP to output it:$result = @mysql_query('SELECT products.id, products.productid, products.productname, productdetails.id, productdetails.size FROM productdetails RIGHT JOIN products ON products.productid = productdetails.productid');// Display the text of each entry in a table while ($row = mysql_fetch_array($result)) { echo '<div id="newproduct"><table border="1">' . '<tr><td>' . $row['id'] . '</td><td>' . $row['productid'] . '</td><td>' . $row['productname'] . '</td></tr>' . '<tr><td>' . $row['size'] . '</td></tr></table></div>';}I'm sure its very simple, it usually is. Any help would be greatly appreciated.Thanks,Nick Quote Link to comment Share on other sites More sharing options...
alpine Posted September 23, 2006 Share Posted September 23, 2006 This i believe is one way:SELECT products.id, products.productid, products.productname, productdetails.id, productdetails.size FROM productdetails, products WHERE products.productid = productdetails.productid Quote Link to comment Share on other sites More sharing options...
fenway Posted September 25, 2006 Share Posted September 25, 2006 Well, if you flip the tables and do a left JOIN, your first idea will work... but you'll have to have a seen hash. Quote Link to comment Share on other sites More sharing options...
nickholt1972 Posted September 25, 2006 Author Share Posted September 25, 2006 ok, i have 2 questions in reply to that...firstly,are you saying there's a difference betweentable1 RIGHT JOIN ON table2andtable2 LEFT JOIN ON table 1and secondly, what's a 'seen hash'?Many thanks,Nick. Quote Link to comment Share on other sites More sharing options...
fenway Posted September 25, 2006 Share Posted September 25, 2006 1 - LEFT JOIN is used by convention, where as RIGHT JOIN shouldn't even exist, and probably is only still around for compatability.2 - You have to keep track of the products you've already "seen". Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.