Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] Wyświetlanie pogrupowanych danych z bazy
mpps
post
Post #1





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

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


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
Go to the top of the page
+Quote Post
zelu
post
Post #2





Grupa: Zarejestrowani
Postów: 229
Pomógł: 34
Dołączył: 7.12.2008
Skąd: Poznań

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


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

Ten post edytował zelu 16.03.2009, 10:09:58
Go to the top of the page
+Quote Post
mpps
post
Post #3





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

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


@zelu oczywiście miałeś rację

wrzucam gotowca.
może ktoś skorzysta (IMG:http://forum.php.pl/style_emoticons/default/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. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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
Go to the top of the page
+Quote Post

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: 23.08.2025 - 01:45