Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> przeszukiwanie tablic wielowymiarowych
elwierka
post
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 26.12.2007

Ostrzeżenie: (0%)
-----


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:
  1. $lacz = con_to_db();
  2.  
  3. $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 '.
  4. 'from produkty as p, grupa_towarow as gt, '.
  5. 'kategorie as k, szczeg_kat as szczeg WHERE '.
  6. 'szczeg.kategoria_id = k.kategoria_id AND '.
  7. 'szczeg.produkt_id = p.produkt_id AND p.gt_id = gt.gt_id '.
  8. 'order by k.nazwa_kat, gt.opis, p.nazwa';
  9. $wynik = $lacz->query($a);
  10.  
  11.  
  12. try{
  13. if (!$wynik) {
  14. throw new Exception('Wykonanie zapytania nie powiodło się.');
  15. }
  16.  
  17. if (!$wynik->num_rows>0) {
  18.  
  19. throw new Exception('<h2>W bazie danych nie ma jeszcze produktów.</h2>');
  20. }
  21.  
  22. $kategorie = array();
  23. $grupy = array();
  24.  
  25. while ($row = $wynik->fetch_array()){
  26. $kat_id = $row['KATID'];
  27. $gt_id = $row['GTID'];
  28.  
  29. if (!isset($kategorie[$kat_id]))
  30. $kategorie[$kat_id] = array('nazwakat' => $row['KATNAZWA'], 'grupa_tow'=>$grupy, 'produkty'=>array());
  31.  
  32. if(!isset($kategorie['grupa_tow']))
  33. if(!empty($row['GTOPIS']))
  34. $kategorie[$kat_id]['grupa_tow'][] = array('opis'=>$row['GTOPIS']);
  35. //dodajemy do kategorii kolejne produkty
  36. if (!empty($row['PNAZWA'])) //jeśli istnieje produkt
  37. $kategorie[$kat_id]['GTID']['produkty'][] = array('nazwa' => $row['PNAZWA'], 'produkt_id'=>$row['PID']);
  38. }
  39.  
  40.  
  41. foreach ($kategorie as $idkat => $kateg){ //petla, która leci po kategoriach (warstwa)
  42. 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>';
  43. foreach ($kateg['grupa_tow'] as $gtow){
  44. //pętla, która leci po grupach towarów w kategorii
  45. echo '<div style="float:left; width:180px; margin:5px; "><h3 class="tlo-orange txtBialy wb">'.$gtow['opis'].' ('.count($gtow['produkty']).')</h3>';
  46.  
  47. foreach ($kateg['produkty'] as $produkt){ //pętla, która leci po produktach w kategorii
  48. 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>';
  49. }
  50.  
  51.  
  52. echo '</div>';
  53. }
  54. echo '</div>';
  55. }
  56.  
  57.  
  58.  
  59. } catch (Exception $e) {
  60.  
  61. echo $e->getMessage();
  62. tworz_stopke();
  63. }
  64. }
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 00:53