mysql 按类别列出 3 个表格

mysql list by category 3 tables

我曾经根据 mysql 数据库制作产品列表。

我的 tables:


klantartikels:  
  klantart_art_nummer  klantart_klant_id 
  29216                1
  15151                1
  18215                2

artikels
  art_naam  art_nummer  art_cat_id
  artnaam1  29216       12
  artnaam2  15151       11
  artnaam3  18215       6

categorie
  cat_id  cat_naam
  12      category1
  11      category2
  6       category3 

table klantartikles 拥有用户定义的产品

当 ID 为“1”的用户进入 his/her 列表页面时,我想这样显示它们

 
category1
  artnaam1

catgory2
  art_naam2

etc.

也许是这样的?

$subcatsql = mysql_query("SELECT * 
FROM klantartikels AS k
INNER JOIN artikels AS a 
ON a.art_nummer = k.klantart_art_nummer 
WHERE k.klantart_klant_id = '1'     GROUP BY a.art_cat_id")or die(mysql_error());

抱歉我的英语不好

非常感谢 ;)

您可以使用 JOIN 来执行此操作:

SELECT art.*, cat.cat_naam as category_name FROM artikels art JOIN categorie cat ON art.art_cat_id = cat.cat_id JOIN klantartikels kart ON kart.klantart_art_nummer = art.art_nummer WHERE kart.klantart_klant_id = '1'

您可以访问 artikels table 中的所有内容,并且从结果中,您可以通过以下方式访问类别名称:category_name

编辑

对于附加问题,答案是:

// FETCH FROM THE DATABASE

$theArray = array();
while($row = mysql_fetch_array($query))
{
    $category = $row["category_name"];
    $art_naam = $row["art_naam"];

    if(isset($theArray[$category]))
        array_push($theArray[$category], $art_naam);
    else
        $theArray[$category] = array("0" => $art_naam);
}

// PRINT IT

foreach($theArray as $category => $item)
{
    print "<h1>" . $category . "</h1>";
    foreach($item as $name)
    {
        print "<div>" . $name . "</div>";
    }
}