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ę.'); exit; } if (!$wynik->num_rows>0) { throw new Exception('<h2>W bazie danych nie ma jeszcze produktów.</h2>'); exit; } while ($row = $wynik->fetch_array()){ $kat_id = $row['KATID']; $gt_id = $row['GTID']; $kategorie[$kat_id] = array('nazwakat' => $row['KATNAZWA'], 'grupa_tow'=>$grupy, 'produkty'=>array()); //dodajemy do kategorii kolejne produkty $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) foreach ($kateg['grupa_tow'] as $gtow){ //pętla, która leci po grupach towarów w kategorii 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(); exit; } }