Proszę o wskazówki/ pomoc.
Mam tablicę wielowymiarową. Trzymam w niej dane dot. kategorii, grup towarowych i produktów. Częściowo przerobiłam skrypt kolegi z forum
skrypt - wyświetla wszystkie kategorie
- zlicza ilość grup towarów przypisanych do kategorii
- wyświetla nazwy grup towarowych kategorii
Obrazek
Podział na kategorie i grupy towarowe.
Problem:
1) nie zlicza mi ilości produktów w danej grupie towarowej - na zdjęciu oznaczone jako nr 1
2) nie wyświetla mi produktów w danej grupie towarowej
Co robię źle? Proszę o podpowiedzi.
Poniżej zamieszczam kod:
$lacz = con_to_db();
$a = 'select p.nazwa as PNAZWA,p.produkt_id as PID, gt.gt_id as GTID, gt.opis as GTOPIS, k.nazwa_kat as KATNAZWA, k.kategoria_id as KATID '.
'from produkty as p, grupa_towarow as gt, '.
'kategorie as k, szczeg_kat as szczeg WHERE '.
'szczeg.kategoria_id = k.kategoria_id AND '.
'szczeg.produkt_id = p.produkt_id AND p.gt_id = gt.gt_id '.
'order by k.nazwa_kat, gt.opis, p.nazwa';
$wynik = $lacz->query($a);
try{
if (!$wynik) {
throw new Exception('Wykonanie zapytania nie powiodło się.');
}
if (!$wynik->num_rows>0) {
throw new Exception('<h2>W bazie danych nie ma jeszcze produktów.</h2>');
}
while ($row = $wynik->fetch_array()){
$kat_id = $row['KATID'];
$gt_id = $row['GTID'];
if (!isset($kategorie[$kat_id])) $kategorie[$kat_id] = array('nazwakat' => $row['KATNAZWA'], 'grupa_tow'=>$grupy, 'produkty'=>array
());
if(!isset($kategorie['grupa_tow'])) if(!empty($row['GTOPIS'])) $kategorie[$kat_id]['grupa_tow'][] = array('opis'=>$row['GTOPIS']); //dodajemy do kategorii kolejne produkty
if (!empty($row['PNAZWA'])) //jeśli istnieje produkt $kategorie[$kat_id]['GTID']['produkty'][] = array('nazwa' => $row['PNAZWA'], 'produkt_id'=>$row['PID']); }
foreach ($kategorie as $idkat => $kateg){ //petla, która leci po kategoriach (warstwa)
echo '<div style="float:left; width:200px; margin:5px; border:2px solid #fff;"><h3 class="tlo-granat txtBialy wb">'.$kateg['nazwakat'].' ('.count($kateg['grupa_tow']).')</h3>'; foreach ($kateg['grupa_tow'] as $gtow){
//pętla, która leci po grupach towarów w kategorii
echo '<div style="float:left; width:180px; margin:5px; "><h3 class="tlo-orange txtBialy wb">'.$gtow['opis'].' ('.count($gtow['produkty']).')</h3>';
foreach ($kateg['produkty'] as $produkt){ //pętla, która leci po produktach w kategorii
echo '<div style="float:left; background:#f6fcfd; height:14px; padding:5px;"><b><a href="./?d=szczegolyProduktu&id='.$produkt['produkt_id'].'" class="url">'.$produkt['nazwa'].'</a> | </b></div>'; }
}
}
} catch (Exception $e) {
tworz_stopke();
}
}