我该如何输出这张表?

时间:2012-01-22 00:48:23

标签: php mysql codeigniter

我正在尝试为不同供应商的某些产品输出价格。产品在行中,供应商在列中。这似乎是一件容易的事情,但我无法弄清楚我是如何用PHP做的。

产品存储在产品表中,供应商位于供应商表中,价格位于定价表中。有一些公共ID字段可以将它们全部链接起来。定价表中的样本记录可能是:

product_id = 5, category_id = 2, vendor_id = 8, product_price = $5.50

在我的表中,供应商在列中的顺序始终相同。但是,我如何构建查询和PHP,以便我可以获得该输出?我知道这是一个基本问题,但我对此比较陌生,需要一些帮助。如果你能帮我输出如下表格,请提前致谢。

编辑:我的表格结构如下:

product_categories

CATEGORY_ID

CATEGORY_NAME

category_order(用于排序)

厂商

VENDOR_ID

VENDOR_NAME

模型

MODEL_ID

模型名称

model_link(链接到网站了解更多信息)

价格

MODEL_ID

VENDOR_ID

CATEGORY_ID

<h2>Pet Foods</h2>
<table>
   <tr>
      <td>Product</td>
      <td>Vendor 1</td>
      <td>Vendor 2</td>
      <td>Vendor 3</td>
   </tr>

   <tr>
      <td>Cat Food</td>
      <td>$5</td>
      <td>$6</td>
      <td>$5.50</td>
   </tr>
</table> 

1 个答案:

答案 0 :(得分:0)

$sql="SELECT product_id, product_price FROM pricing ORDER BY product_id, vendor_id";
$res=mysql_query($sql,$link);
if(mysql_num_rows($res)>0){
    $pId='';
    echo "<table><tr><td>Product</td><td>Vendor 1</td><td>Vendor 2</td><td>Vendor 3</td></tr>";
    while($row=mysql_fetch_array($res)){
        if($pId!=$row[0]){
            if($pId!=''){
                echo "</tr>";
            }
            $pId=$row[0];
            echo "<tr><td>$pId</td>";
        }else{
            $price=$row[1];
            echo "<td>$price</td>";
        }
    }
    echo "</tr></table>";
}

我假设您有相同的供应商,并且没有供应商数据丢失,但我仍会检查是否我没有错过任何供应商价格数据。你可以轻松地做到这一点。 祝你好运!