繁体   English   中英

显示数据库结果

[英]Showing results from a database

我在显示数据库中的记录时遇到一个问题,因为我使用中间表。 但我将尝试解释。 我的数据库中有下一个表:

  • 类型id,naam
  • 商店id,naam,type_id ……不重要)
  • 产品id,naam ,...不重要)
  • product_shop_ttid,product_id,shop_id )-那是我在产品商店之间的中间表
  • 订单id,user_id,状态
  • order_detailsid,order_id,user_id,product_shop_tt_id
  • 用户id,naam,不重要

现在我有下一个代码:

<?php

$rezKor = mysqli_query($kon, "SELECT * FROM korisnici WHERE email = '". $_COOKIE["korisnik"] ."' LIMIT 1");
$redKor = mysqli_fetch_assoc($rezKor);
$user_id =  $redKor["id"];

$rezOrders = mysqli_query($kon, "SELECT * FROM orders WHERE user_id = ". $user_id ." AND status = 0 ORDER BY id DESC LIMIT 1");
$redOrders = mysqli_fetch_assoc($rezOrders);
$brRez = mysqli_num_rows($rezOrders);

$rezOrdDetails = mysqli_query($kon, "SELECT * FROM order_details WHERE order_id = ". $redOrders["id"] ."");

while($redOrdDetails = mysqli_fetch_assoc($rezOrdDetails)){
    $rezTT = mysqli_query($kon, "SELECT * FROM product_shop_tt WHERE id = ". $redOrdDetails["product_shop_tt_id"] ."");
    $redTT = mysqli_fetch_assoc($rezTT);
    $brTT = mysqli_num_rows($rezTT);

    $i = 0;
    $rezShop = mysqli_query($kon, "SELECT * FROM shops WHERE id = ". $redTT["shop_id"] ."");
    while($redShop = mysqli_fetch_assoc($rezShop)){
        if($i == 0){
            echo $redShop["naam"] . "<br />";
        }
        $i++;
        $rezProdukt = mysqli_query($kon, "SELECT * FROM producten WHERE id = ". $redTT["product_id"] ."");
        while($redProduct = mysqli_fetch_assoc($rezProdukt)){
            echo "<br />Ime produkta : " . $redProduct["naam"] . "<br />";
        }
    }
}

echo "<div style=\"clear:both;\"></div><div class=\"footer\" style=\"position: fixed;bottom: 0;width: 100%;left:0;\">
    <a href=\"home.php\" title=\"Ga terug\" class=\"col-xs-6 col-sm-6 btn btn-info\"><span class=\"glyphicon glyphicon-chevron-left\"></span> Niets toevoegen</a>
    <button class=\"col-xs-6 col-sm-6 btn btn-danger\" type=\"submit\" name=\"btnNaruci\" id=\"btnNaruci\">
        Leg in winkelmand <span class=\"glyphicon glyphicon-chevron-right\"></span><span class=\"glyphicon glyphicon-chevron-right\"></span><span class=\"glyphicon glyphicon-chevron-right\"></span>
    </button>
</div>";

?>

我想获得下一个输出:

 <h1>Type of the shops</h1><br /> <h3>The name of the first shop</h3> <ul> <li>Product from the first shop</li> <li>Product from the first shop</li> </ul><br /> <h3>The name of the second shop</h3> <ul> <li>Product from the second shop</li> <li>Product from the second shop</li> </ul><br /><br /> <h1>Type of the shops</h1><br /> <h3>The name of the next shop</h3> <ul> <li>Product from shop</li> <li>Product from shop</li> </ul><br /> <h3>The name of the new shop</h3> <ul> <li>Product from the new shop</li> <li>Product from the new shop</li> </ul> 

但是用我的代码我得到下一个:

 <div>Type of the shops</div> <div>The name of the first shop</div> <div>Product from the first shop</div><br /> <div>Type of the shops</div> <div>The name of the first shop</div> <div>Product from the first shop</div><br /> <div>Type of the shops</div> <div>The name of the first shop</div> <div>Product from the first shop</div><br /> 

因此,我想显示同一家商店下面所有产品的名称。 现在,我为每种产品获得商店名称和商店类型。

我希望我能很好地解释。

在此先感谢您的帮助。

感谢@Sean。

<?php

    $rezOrders = mysqli_query($kon, "SELECT * FROM orders WHERE user_id = ". $user_id ." AND status = 0 ORDER BY id DESC LIMIT 1");
    $redOrders = mysqli_fetch_assoc($rezOrders);


    $rez = mysqli_query($kon, "SELECT product_shop_tt.*, shops.*, shops.naam as shopNaam, producten.*, producten.naam as prodNaam, order_details.*, type.*, type.naam as typeNaam 
                                FROM order_details INNER JOIN product_shop_tt ON order_details.product_shop_tt_id = product_shop_tt.id
                                INNER JOIN shops ON shops.id = product_shop_tt.shop_id
                                INNER JOIN producten ON producten.id = product_shop_tt.product_id 
                                INNER JOIN type ON type.id = shops.type_id 
                                WHERE order_id = ". $redOrders["id"] ."");

    $currentType = "";
    $currentShop = "";
    while($red = mysqli_fetch_assoc($rez)){
        if ($red["typeNaam"] != $currentType){
                echo "Type : " . $red["typeNaam"] . "<br />";
                $currentType = $red["typeNaam"];
            }
        if ($red["shopNaam"] != $currentShop){
                echo "Shop : " . $red["shopNaam"] . "<br />";
                $currentShop = $red["shopNaam"];
            }
                echo "Product : " . $red["prodNaam"] . "<br />"; 
        }
?>

这是执行我所需要的代码。

非常感谢@Sean! 干杯

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM