显示供应商提供的类别

  • 本文关键字:供应商 显示 php html
  • 更新时间 :
  • 英文 :


我有我的2个表:tbl_suppliertbl_categories

我想在 html 的下拉select选项中显示供应商提供的所有类别php

例:

Supplier1 > Category1, Category2, Category3
Supplier2 > Category2, Category4

您需要第三个表,每个供应商/类别组合一行:

供应商

| id | name |
|----|------|
| 1  | John |
| 2  | Ana  |
| 3  | Dan  |

类别

| id | name       |
|----|------------|
| 1  | category 1 |
| 2  | category 2 |
| 3  | category 3 |

Supplier_categories

| id | Supplier_id | categ_id |
|----|-------------|----------|
| 1  | 1           | 1        |
| 2  | 1           | 2        |
| 3  | 2           | 2        |
| 4  | 2           | 3        |

然后,您可以通过INNER JOIN三个表并放置如下条件来检索每个供应商类别的列表:

SELECT Supplier.id, Category.name
FROM Supplier
INNER JOIN Supplier_categories
on Supplier_categories.Supplier_id = Supplier.id
INNER JOIN Category
ON Category.id = Supplier_categories.categ_id 
WHERE Supplier.id = 1 //(for example)

假设您的tbl_supplier包含一个 sid 主键,然后该键存在于tbl_categories中以跟踪供应商,并且 cat 是保存类别名称的列,查询将如下所示:Select c.cat from tbl_supplier as t, tbl_categories as c where t.sid=c.sid and t.sid='supplier-1'供应商 1 的示例:

<label>Supplier1:</label>
<select name="supplier-1">
<option>All</option>
<?php 
$query = mysqli_query($conn,"Select c.cat from tbl_supplier as t, tbl_categories as c where t.sid=c.sid and t.sid='supplier-1'");
while($row=mysqli_fetch_array($query)){
echo "<option>".$row['cat']."</option>";
}
?>
</select>

但是,如果要动态添加多个供应商下拉列表,则需要编写更复杂的查询。 希望我有帮助!

最新更新