J'ai réussi à obtenir ce travail, mais j'ai un léger bug que je ne peux pas réparer et j'espère que quelqu'un peut aider.Boucle produits par catégorie
Je fonctionne bien s'il y a un produit dans la catégorie parente mais si le parent est vide alors que le SQL renvoie les bons résultats, la boucle PHP répète les données en fonction du nombre de produits. c'est à dire. 4 produits = 4 séries de résultats. Mais comme je l'ai dit, s'il y a un record dans la catégorie parente, cela fonctionne parfaitement.
<?php $_GET["category_id"]=$category_id; ?>
<?PHP
$sql = "
SELECT DISTINCT JVPCX.category_id,
JVP.product_id,
JVP.product_error,
JVP.product_exchange,
JVP.product_sku,
JVP.product_name,
JVP.product_url,
JVP.product_in_stock,
jos_vm_category.category_name
FROM jos_vm_product_category_xref JVPCX
INNER JOIN jos_vm_product JVP ON (JVPCX.product_id = JVP.product_id)
INNER JOIN jos_vm_category ON (JVPCX.category_id =
jos_vm_category.category_id)
WHERE JVPCX.category_id IN (SELECT jos_vm_category_xref.category_child_id FROM
jos_vm_category_xref WHERE jos_vm_category_xref.category_parent_id =".$category_id.") OR (JVPCX.category_id =".$category_id.")";
$res = mysql_query($sql);
$list = array();
while ($r = mysql_fetch_object($res))
{
if (! isset($list[ $r->category_name ]))
{
$list[ $r->category_name ] = array();
}
$list[ $r->category_name ][ $r->product_id ] = array(
'SKU' => $r->product_sku,
'Name' => $r->product_name,
'Prod_id' => $r->product_id,
'Prod_error' => $r->product_error,
'Prod_exchange' => $r->product_exchange,
'Prod_url' => $r->product_url,
'Prod_in_stock' => $r->product_in_stock
);
}
?>
<table width="70%" border="0">
<tr>
<td align="center" valign="middle"> Error: <img src="alert.gif" title="Error" alt="Error" />
</td>
<td align="center" valign="middle"> Exchange: <img src="exchange.gif" title="Exchange" alt="Exchange" />
</td>
<td align="center" valign="middle"> Information:<img src="info.gif" title="info" alt="info" />
</td>
<td align="center" valign="middle"> Stock:<img src="stock.gif" title="Stock" alt="Stock" />
</td>
<td align="center" valign="middle"> Buy:<img src="cart-icon.png" title="Stock" alt="Buy" />
</td>
</tr>
</table>
<?PHP
echo("<BR/>");
foreach ($list as $catID => $products) { ?>
<?php
print($catID);
echo("<BR/>");
?>
<table width="100%" border="1" class="product-head">
<tr>
<th width="20%"> <?php echo("Part Number:"); ?>
</th>
<th width="45%"> <?php echo("Description:"); ?>
</th>
<th width="15%"> <?php echo("Information:"); ?>
</th>
</tr>
</table>
<table width="100%" border="1" class="product">
<?php foreach ($products as $prodID => $data) { ?>
<tr>
<td width="20%">
<?php print($data['SKU']);
echo("<BR/>");
?>
</td>
<td width="45%"><?php
print($data['Name']);
echo("<BR/>"); ?></td>
<td width="15%" valign="middle"><?php
if ($data['Prod_error'] == "Y"){
echo '<img src="alert.gif" title="Error" alt="Error" />';
}
if ($data['Prod_exchange'] == "Y"){
echo '<img src="exchange.gif" title="Exchange" alt="Exchange" />';
}
if ($data['Prod_url'] > ""){
echo '<a href="'.
$data['Prod_url']
.'">'.'<img src="info.gif" title="info" alt="info" />'.'</a>';
}
if ($data['Prod_in_stock'] > "0"){
echo '<img src="stock.gif" title="Stock" alt="Stock" />';
}
?>
</td>
</tr>
</table>
<?php echo("<BR/>"); ?>
<?php } ?>
Postez le code que vous avez. – spencercw
il est étrange que personne ne vous a suggéré de poster votre code - alors s'il vous plaît poster votre code – mkk
J'ai essayé de faire fonctionner cela à partir d'un autre poste: – Paul