Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][mySql] pobieranie rekordów
mtskilla
post
Post #1





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 17.01.2007

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


Witam

Mam takie strasznie lamerskie pytanie..
Mam dwie tablice "kategorie" oraz "podkategorie"

Jak mam wylistowac je w taki sposob zeby miec np:

kategoria 1
pod kategoria 1
pod kategoria2
pod kategoria 3
kategoria 1
pod kategoria 1
pod kategoria2
pod kategoria 3

dodam, ze w kazdej podkategorii mam wpisaną nazwę kategorii glownej.
Mogłby ktoś mnie naprowadzic?
dzieki i pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
cezarszl
post
Post #2





Grupa: Zarejestrowani
Postów: 36
Pomógł: 1
Dołączył: 18.11.2009
Skąd: Cz-wa

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


Wybacz, ale potrzebujesz całkowitych podstaw, bez tego chyba się nie obejdzie --> klik:)



--------------------
ja być noob
Go to the top of the page
+Quote Post
nospor
post
Post #3





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




Pisałem o tym tutaj:
http://nospor.pl/grupowanie-wynikow-n35.html


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mtskilla
post
Post #4





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 17.01.2007

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


Mam takie male pytanko co do tego powyzej.
Struktura moja wyglada tak, ze mam
kategoria (category)
podkategoria (product)
cel (prod)
(mniejsza o nazewnictwo)

chcialbym aby wyswietlalo mi:

* kategoria 1
o Podkategoria 1 (liczba celów: 2)
o Podkategoria 2 (liczba celów: 5)
* kategoria 2
o Podkategoria 1 (liczba celów: 0)
* kategoria 3
o Podkategoria 1 (liczba celów: 2)
o Podkategoria 2 (liczba celów: 5)
o Podkategoria 3 (liczba celów: 0)
o Podkategoria 4 (liczba celów: 1)

wystrugany kod (zle bo nie dziala) :
  1. $sql = 'select pr.NAME PRNAME, pr.ID PRID, p.NAME PNAME,p.ID PID, c.ID CID, c.NAME CNAME from category c '.'left join product p on p.FK_CATEGORY = c.ID '.' left join prod pr on pr.FSK_CATEGORY = p.ID order by c.NAME asc, p.NAME asc, pr.NAME asc';
  2.  
  3. // pr to tablica prod i w niej FSK_category odpowiada p.ID - id produktu..
  4.  
  5. $res = mysql_query($sql);
  6.  
  7. if (!empty($res))
  8. {
  9.  
  10. $categories = array();
  11. while ($row = mysql_fetch_array($res)){
  12. $cid = $row['CID'];
  13. $pid = $row['PID'];
  14.  
  15. if (!isset($categories[$cid]))
  16. $categories[$cid] = array('name' => $row['CNAME'], 'products' => array());
  17.  
  18.  
  19. if (!empty($row['PNAME']))
  20. $categories[$cid]['products'][] = array('name' => $row['PNAME'], 'id'=>$row['PID']);
  21.  
  22.  
  23.  
  24. if (!empty($row['PRNAME']))
  25. $categories[$pid]['prod'][] = array('name' => $row['PRNAME'], 'id'=>$row['PRID']);
  26.  
  27. }
  28.  
  29.  
  30. foreach ($categories as $idCat => $category){
  31. echo '<a class="menuitem">'.$category['name'].' ('.count($category['products']).')</a> <ul class="submenu">';
  32. foreach ($category['products'] as $product){
  33. echo '<li><a href="productlist.php?name='.$category['name'].'">'.$product['name'].' ('.count($category['products']).')</a> </li>';
  34. }
  35. }


co robie zle?
wstydnis.gif


wstydnis.gif

Ten post edytował mtskilla 20.05.2010, 21:40:06
Go to the top of the page
+Quote Post
nospor
post
Post #5





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




Zastosuj się proszę do podanych tu porad:
Temat: Jak poprawnie zada pytanie
a zobaczysz być może parę dodatkowych błędów, które pomogę Tobie/nam w rozwiązaniu tego problemu.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Zrewolwerowany
post
Post #6





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 21.05.2010

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


  1. $cats_query=mysql_query('SELECT * FROM kategorie');
  2.  
  3. while($cat=mysql_fetch_assoc($cats_query)){
  4.  
  5. echo '* '.$cat[nazwa].'<br>';
  6.  
  7. $subcats_query=mysql_query('SELECT * FROM podkategorie WHERE kategoria="'.$cat[id].'"');
  8.  
  9. while($subcat=mysql_fetch_assoc($subcats_query)){
  10.  
  11. echo 'o '.$subcat[nazwa].'<br>';
  12.  
  13. }
  14.  
  15. }


Musisz pozmieniać jedynie nazwy pól i tabel

Ten post edytował Zrewolwerowany 21.05.2010, 12:06:47
Go to the top of the page
+Quote Post
nospor
post
Post #7





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




@Zrewolwerowany Twoje rozwiązanie jest najgorszym z możliwych. Zapytania wykonywane w pętli to nie najlepszy pomysł.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mtskilla
post
Post #8





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 17.01.2007

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



A dlaczego jest to zly pomysl?

Czy to bardzo obciąża baze? a może spowalnia dzialanie strony?
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 07:07