Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Wyświetlanie pogrupowanych danych z bazy
Forum PHP.pl > Forum > Przedszkole
mpps
Witam,
mam dwie tabele:
1. idcat | itemcat

2. id | item | category

a w nich dane:
1. 1 | cat1
2 | cat2
4 | cat3
10 | cat5

2. 1 | item1 | 2
2 | item3 | 4
3 | item11 | 2
4 | item8 | 1
5 | item4 | 10
6 | item5 | 1
7 | item19 | 2

potrzebuję wyświetlić te wyniki zgrupowane wg. 'category', tzn.

cat1
- item8
- item5
cat2
- item1
- item11
- item19
cat3
- item3
cat5
- item4

mam takie zapytanie sql z pętlą while:
  1. <?php
  2. $items = mysql_query("select * from catering t1 inner join category t2 on (t1.category = t2.idcat) order by idcat") or die(mysql_error());
  3. while($rek = mysql_fetch_array($items)){
  4.    echo $rek[itemcat].'<br>';
  5.    echo $rek[item];
  6. }
  7. ?>


jak to przerobić, żeby wyświetlała się nazwa kategorii (raz) a pod nią wyniki z danej kategorii?
z góry dzięki za pomoc
zelu
W tym przypadku chyba jednak bedziesz musial rozbic zapytanie na dwa.

Ewentualnie z wynikow zapytania z JOINem tworzysz tablice dwuwymiarowa i na jej podstawie dzialasz

Pzdr
mpps
@zelu oczywiście miałeś rację

wrzucam gotowca.
może ktoś skorzysta winksmiley.jpg
a może zaproponuje inne rozwiązanie...!

  1. <?php
  2. $category = mysql_query("select * from category");
  3. while ($cat = mysql_fetch_array($category)){
  4.    echo "<br>".$cat['itemcat'].":<br>";
  5.    $cennik = mysql_query("select * from items where category = ".$cat['idcat']);
  6.    while($cen = mysql_fetch_array($cennik)){
  7.        echo $cen[item];
  8.        echo $cen[weight];
  9.        echo $cen[price];
  10.    }
  11. }
  12. ?>
nospor
Zastosowanie tutaj zapytań w pętli to jedno z najgorszych rozwiązań jakie można było użyć.

Musisz pobrać wszystkie dane jednym zapytaniem, a następnie ładnie w php je obrobić.
Jako że problem dość często pojawia się na forum, postanowiłem opisać to troche:
http://nospor.pl/grupowanie-wynikow-n35.html
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.