Jump to content

Archived

This topic is now archived and is closed to further replies.

nickholt1972

PHP (& MySQL) display problems

Recommended Posts

THE PROBLEM: I'm developing an online shop using PHP and MySQL. I've got products and each product might have different sizes, colours, etc
I have two tables: products and productdetails

When i list these in my shop I want it to say (e.g.)

Product 1:
Colour: white, Size: small
Colour white, Size: large

But what i'm getting is

Product 1:
Colour: white, Size: small

Product 1:
Colour white, Size: large

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 pretty sure its not the MySQL query, I've also tried

[i]FROM products, productdetails
WHERE products.productid = productdetails.productid[/i]
but it doesn't solve my problem

I'm sure its very simple, it usually is. Any help would be greatly appreciated.
Thanks,
Nick

Share this post


Link to post
Share on other sites
I just built something which grabs details from the database, and each time the supplier is different, I wanted the supplier in a heading

So what I done is something like this

[code]
<?php
//Add on the end of your query
//ORDER BY productname



//then your while loop
while($row = ......){
if($prod_name != $row["product_name"]){
echo $row["product_name"]."<br />\n";
}
$prod_name = $row1["product_name"];
//Continue with your results


}


?>
[/code]

Share this post


Link to post
Share on other sites
Maybe this is what you are loo0king for, I had to guess what each field is.
[code]$oldid = "";
echo '<div id="newproduct"><table border="1">';
while ($row = mysql_fetch_array($result)) {
  if ($oldid != $row['productid']) {
      echo '<tr><td>' . $row['id']          . '</td>' .
              '<td>' . $row['productid']  . '</td>' .
          '<td>' . $row['productname'] . '</td>' .
              '</tr>';
          $oldid = $row['productid'];
  }
        '<tr><td>' . $row['size']        . '</td>' .
        '</tr>';
}
echo '</table></div>';[/code]

Ronald  8)

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.