Как бы я вывел эту таблицу? - PullRequest
0 голосов
/ 22 января 2012

Я пытаюсь вывести цены на некоторые продукты разных производителей. Продукты находятся в строках, а поставщики - в столбцах. Это кажется достаточно простым делом, но я не могу понять, как мне это сделать с помощью PHP.

Продукты хранятся в таблице продуктов, поставщики - в таблице поставщиков, цены - в таблице цен. Есть общие поля идентификаторов, которые связывают их все. Пример записи из таблицы цен может быть:

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

В моей таблице продавцы всегда будут в одинаковом порядке по столбцам. Но как мне структурировать запрос и PHP, чтобы я мог получить этот вывод? Я знаю, что это основной вопрос, но я относительно новичок в этом и мне нужна помощь. Спасибо заранее, если вы можете помочь мне вывести таблицу, подобную приведенной ниже.

Редактировать: Моя структура таблицы выглядит следующим образом:

product_categories

category_id

category_name

category_order (используется для сортировки)

производители

VENDOR_ID

1022 * продавец VENDOR_NAME *

модель

model_id

model_name

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 голосов
/ 22 января 2012
$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>";
}

В этом я предполагал, что у вас одни и те же поставщики, а данные о поставщиках отсутствуют, но я все же проверю, не пропустил ли я какие-либо данные о ценах поставщиков.Вы можете легко сделать это.Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...