Tell me more ×
Webmasters Stack Exchange is a question and answer site for pro webmasters. It's 100% free, no registration required.

Ok so here is the deal currently this script outputs all the products in a parent category as well as the products in the child categories. What i would like to do is seperate the output based on child categories. All the child categories are in the array $children and the string $childs. The parent category is the first array element of $children with the following ones being the actual children. The category names are stored in the database $result as " $cat_name ". I want to first Display the cat_name then the products that fall in that category and then display the next child cat_name and items, ect. Any suggestions of how to manipulate the while loop that cylcles through the rows?

 <?php 

$productsPerRow = 3;
$productsPerPage = 15;

//$productList    = getProductList($catId);
$children = array_merge(array($catId), getChildCategories(NULL, $catId));
$childs = ' (' . implode(', ', $children) . ')';


$sql = "SELECT pd_id, pd_name, pd_price, pd_thumbnail, pd_qty, c.cat_id, c.cat_name
        FROM tbl_product pd, tbl_category c
        WHERE pd.cat_id = c.cat_id AND pd.cat_id IN $childs 
    ORDER BY pd_name";
$result     = dbQuery(getPagingQuery($sql, $productsPerPage));
$pagingLink = getPagingLink($sql, $productsPerPage, "c=$catId");
$numProduct = dbNumRows($result);

// the product images are arranged in a table. to make sure
// each image gets equal space set the cell width here
$columnWidth = (int)(100 / $productsPerRow);

?>

<p><?php if(isset($_GET['m'])){echo "You must select a model first! After you select         
your model you can customize your dragster parts.";} ?> </p>
<p align="center"><?php echo $pagingLink; ?></p>
<table width="100%" border="0" cellspacing="0" cellpadding="20">
<?php 
if ($numProduct > 0 ) {

    $i = 0;
        while ($row = dbFetchAssoc($result)) {
        extract($row);
        if ($pd_thumbnail) {
            $pd_thumbnail =   WEB_ROOT . 'images/product/' 
.$pd_thumbnail;                     } else {
                $pd_thumbnail =  'images/no-image-small.png';
                    }

                    if ($i % $productsPerRow == 0) {
                        echo '<tr>';
                    }

                    // format how we display the price
                    $pd_price = displayAmount($pd_price);

                    echo "<td width=\"$columnWidth%\" align=\"center\"><a href=\"" . $_SERVER['PHP_SELF'] . "?c=$catId&p=$pd_id" . "\"><img src=\"$pd_thumbnail\" border=\"0\"><br>$pd_name</a><br>Price : $pd_price <br> $cat_id - $cat_name";

                    // if the product is no longer in stock, tell the customer
                    if ($pd_qty <= 0) {
                        echo "<br>Out Of Stock";
                    }

                    echo "</td>\r\n";

                    if ($i % $productsPerRow == $productsPerRow - 1) {
                        echo '</tr>';
                    }



    $i += 1;
}


if ($i % $productsPerRow > 0) {
    echo '<td colspan="' . ($productsPerRow - ($i % $productsPerRow)) . '">&nbsp;</td>';
}
share|improve this question

closed as off topic by John Conde Sep 6 '12 at 16:21

Questions on Webmasters Stack Exchange are expected to relate to webmastering within the scope defined in the FAQ. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about closed questions here.

Browse other questions tagged or ask your own question.