So I’m working a module of a Hotel Website which is Wine List and data is fetched dynamically and there are multiple categories of wines.
I am showing them all according to their category and I also want to have a title above the wines of a single category.. e.g Wine A is a category and i want all those wines to be shown under one title of Wine A and then a title of Wine B and all those of B type to be shown under that title.
I’m trying to do that but every single time when a wine data is shown on the page the name of category is also showing and i want it to show once for all the wines of single category. below is the code, and sorry for the messy code, and let me know if you want know anything else about it
<div class="row"> <?php if ((isset($_GET["category"]))) { $getCategory=$_GET["category"]; $WineCardSql= "SELECT tbl_wine_list.wine_title, tbl_wine_list.description, tbl_wine_list.wine_region, tbl_wine_list.wine_style, tbl_wine_list.recommended_for, tbl_wine_list.unit_price, tbl_wine_list.bottle_price, tbl_wine_list.img_url, tbl_currency.symbol, tbl_wine_category.wine_category FROM tbl_wine_list INNER JOIN tbl_wine_category ON tbl_wine_list.winc_id = tbl_wine_category.winc_id INNER JOIN tbl_currency ON tbl_wine_list.curr_id = tbl_currency.curr_id WHERE tbl_wine_category.winc_id=$getCategory"; // ORDER BY tbl_wine_category.winc_id ASC"; } else { $WineCardSql="SELECT tbl_wine_list.wine_title, tbl_wine_list.description, tbl_wine_list.wine_region, tbl_wine_list.wine_style, tbl_wine_list.recommended_for, tbl_wine_list.unit_price, tbl_wine_list.bottle_price, tbl_wine_list.img_url, tbl_currency.symbol, tbl_wine_category.wine_category FROM tbl_wine_list INNER JOIN tbl_wine_category ON tbl_wine_list.winc_id = tbl_wine_category.winc_id INNER JOIN tbl_currency ON tbl_wine_list.curr_id = tbl_currency.curr_id ORDER BY tbl_wine_category.winc_id ASC"; } $WineCardQuery=$DbObject->query($WineCardSql); if($WineCardQuery) // if ($WineCardQuery && $WineCardQuery->num_rows >0) { { while ($DataTable=$WineCardQuery->fetch()) { $Title =$DataTable["wine_title"]; $Description =$DataTable["description"]; $Region =$DataTable["wine_region"]; $Style =$DataTable["wine_style"]; $Recommendation =$DataTable["recommended_for"]; $GlassPrice =$DataTable["unit_price"]; $BottlePrice =$DataTable["bottle_price"]; $Currency =$DataTable["symbol"]; $ImageLink =$DataTable["img_url"]; $WineCategoryName =$DataTable["wine_category"]; ?> <!-- <div class="row "> --> <div class="col-xl-12"> <h2 style="font-size:30px; font-weight:lighter; margin-left:5px; color:#f5f5f5;"><?php echo $WineCategoryName; ?></h2> </div> <!-- </div> --> <div class="col-xl-6 col-md-6 col-sm-6 mt-3 "> <div class=" mr-3 ml-3 hover-affect-div bg-white"> <div class=" px-2 "> <div class="row"> <div class="col-xl-7 col-md-7 col-sm-12 col-xs-12"> <!-- inner column starts --> <div class="pt-2"style="width:250px;"> <?php echo $Title; ?> <div class="underline"></div> <!-- Underline --> <span> <i><?php echo $Description; ?></i></span> </div><br> <!--<h6>Region:</h6> <i> <?php// echo $Region; ?> </i> <br>--> <div class="textSizeMedium" style="width:250px;"> <strong>Region:</strong><?php echo $Region; ?> <br> <strong>Style:</strong> <?php echo $Style; ?> <br> <strong>Recommended for:</strong><i><?php echo $Recommendation; ?> </i><br> <div style="border-top:2px solid gray; float:right;"> <?php echo $GlassPrice." ".$Currency?> <strong>/ Glass</strong> <br> <?php echo $BottlePrice." ".$Currency ?><strong>/ Bottle</strong> </div> </div> </div> <div class="col-xl-5 col-md-5 col-sm-12 col-xs-12 pl-4 pt-4"> <img src="wine.png" alt="" > </div> </div><br> </div> <!-- row Class ends --> </div> </div> <?php } } // } ?> </div><!-- ROW Ends -->
Advertisement
Answer
So basically I took $i=0
before while loop. And while echoing $WineCategoryName I am checking if($i==0)
.If true print it else print empty string.Before closing of while loop I am incrementing $i
.
$i=0; while ($DataTable=$WineCardQuery->fetch()) { $Title=$DataTable["wine_title"]; $Description =$DataTable["description"]; $Region =$DataTable["wine_region"]; $Style =$DataTable["wine_style"]; $Recommendation =$DataTable["recommended_for"]; $GlassPrice =$DataTable["unit_price"]; $BottlePrice =$DataTable["bottle_price"]; $Currency =$DataTable["symbol"]; $ImageLink =$DataTable["img_url"]; $WineCategoryName =$DataTable["wine_category"]; ?> <!-- <div class="row "> --> <div class="col-xl-12"> <h2 style="font-size:30px; font-weight:lighter; margin-left:5px; color:#f5f5f5;"><?php echo ($i==0) ? $WineCategoryName : ""; ?></h2> </div> .... <?php $i++; } } } ?>