Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]grupowanie wyników
Forum PHP.pl > Forum > Przedszkole
peklo
witam
Mam problem i nie wiem co robie źle z grupowaniem wyników na stronie.
Chodzi o to, że wyniki grupuje mi niby dobrze ale pokazuje tylko pierwszy rekord z tabeli ogłoszenia a tych rekordów jest więcej.

Mam tabele główną (ogłoszenia) która ma kolumny
id
nazwa_ogłoszenia

Druga tabela PJ która jest z nią powiązana ma kolumny
id
id_ogloszenia
id_prawo_jazdy

tabele powiązane są ze w taki sposób:
ogloszenia.id=pj.id_ogloszenia. Dla tabeli ogloszenia.id może być podpiętych jedno lub kilka rekordów pj.id_ogloszenia

  1. <?php
  2. try
  3. {
  4. $sql = 'SELECT o.nazwa_ogloszenia onazwa_ogloszenia,p.id pid,p.id_ogloszenia pid_ogloszenia,p.id_prawo_jazdy pid_prawo_jazdy
  5. FROM ogloszenia o LEFT OUTER JOIN pj p on o.id=p.id_ogloszenia';
  6. $stmt=$pdo->prepare($sql);
  7. $stmt->execute();
  8. $ogloszenia = array();
  9. while($row = $stmt -> fetch())
  10. {
  11. if (!isset($ogloszenia[$oid]))
  12. $ogloszenia[$oid] = array(
  13. 'nazwa_ogloszenia' => $row['onazwa_ogloszenia'],'pjk'=>array()
  14. );
  15. if (!empty($row['pid_prawo_jazdy']))
  16. $ogloszenia[$oid]['pjk'][$row['pid']]= array('id_prawo_jazdy' => $row['pid_prawo_jazdy']
  17. );
  18. }
  19. foreach ($ogloszenia as $id_og => $ogloszenia)
  20. {
  21. echo $ogloszenia['nazwa_ogloszenia'];
  22. foreach ($ogloszenia['pjk'] as $pj_kategorie){
  23. echo $pj_kategorie['pj_kat'];
  24. }
  25. }
  26. $stmt -> closeCursor();
  27. }
  28. catch(PDOException $e)
  29. {
  30. echo 'Błąd.';
  31. }
  32.  
  33. ?>
rad11
A gdzie masz w zapytaniu grupowanie?
nospor
@rad grupowanie jest robione na poziomie php
@peklo tyle razy cie prosilem, bys wlaczal wyswietlanie wszystkich bledow..... ale Ty ciągle swoje....ok, siedź nad kolejnym prostym bledem kolejne 2 dni...
A juz nawet nie bede wspominal o czyms takim, że poraz kolejny mając przed nosem arta po polsku, z gotowym kodem, jak zwykle to albo skasujesz radosnie jakąś glówną linijkę albo bez sensu ją zmienisz. Kod ma 4 linijki na skrzyż i nawet nie widzisz że jedną z wazniejszych skasowales... Nie rozumiem tego... To juz nawet 5cio letnie dziecko jakby pokazac mu te dwa kody i zabawić się w "znajdz 10 roznic" znalazlo by ze na jednym kodzie jest pewna linijka a na innym nie ma. A ty, osoba która od x czasu bawi się w programowanie, ciagle i ciagle to samo.
peklo
nospor , a nie lepiej jest napisać: pominąłeś tą linijke (blblb) i już, a nie się tak rozpisywać. Ale dzięki przynajmniej, że napisałeś że coś pominąłem.
Tak na szybko za pętlą while pominąłem
  1. $oid=$row['OID'];
fate
nie ma lekko, z czasem zaczniesz doecniać chłopcze hahaha facepalmxd.gif
nospor
Cytat
a nie lepiej jest napisać: pominąłeś tą linijke (blblb) i już,
A nie lepiej wkoncu jest zacząc myslec nad tym co się pisze a nie tylko bezmyslnie kopiowac i to na dodatek źle?
Nie lepiej włączyc wyswietlanie bledow jak to ci nie raz mowilem przy kazdym kolejnym twoim glupim bledzie?

Uwierz - lepiej.

Cytat
z czasem zaczniesz doecniać chłopcze
Skoro przez tyle czasu nie docenil to watpie by kiedykolwiek docenil... Jest juz w takim wieku, ze jak za 10 razem do niego nic nie dociera to i pewnie nie dotrze w ogole. Ale nie strzepie juz jezyka, bo znowu mi napisze, ze lepiej jest robic cos innego... np. wypic zimne piwko, co akurat mu racje bym przyznal biggrin.gif
fate
a to ten specool.gif
peklo
a co ma znaczyć to ten?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.