Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dwie pętle w jednej ?, Dane z MySQL
Plikownik
post
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 19.01.2006

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


Witam

Mam problem. Otóż posiadam dwie tabele

kategorie ->id, nazwa, opis, ilosc_plikow, ilosc_sub
subkategorie ->id, nazwa, opis, id_kat, ilosc_plikow

dla przykładu w tabeli "kategorie" posiadam kategorię Biurowe , a w "subkategorie" : Arkusze , Edytory tekstu i Pakiety Biurowe.

Zastanawia mnie jak zrobić, żeby wyświetlało:

Bezpieczeństwo
- Arkusze
- Edytory tekstu
- Pakiety Biurowe

Próbowałem z LEFT JOIN , ale coś nie wyszło, wydaje mi się, że potrzebna jest druga pętla, tylko jak ją skonstruować ?


--------------------
Windows XP | Telewizja, Radio
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Masz źle skonstruowaną bazę danych.
Po co dwie tabele skoro można to zrobić w jednej:
  1. CREATE TABLE `categories` (
  2. `id` int(10) NOT NULL AUTO_INCREMENT,
  3. `parentId` int(10) NOT NULL DEFAULT '0',
  4. `name` varchar(100) NOT NULL DEFAULT '',
  5. PRIMARY KEY (`id`),
  6. UNIQUE KEY `parentId` (`parentId`,`name`)
  7. ) ENGINE=InnoDB;
(dopisz sobie swoje pola)

A potem robisz tylko dwa zapytania:
  1. SELECT *
  2. FROM categories
  3. WHERE id = 10;

  1. SELECT *
  2. FROM categories
  3. WHERE parentId = 10;


Pierwsze: masz kategorię główną;
Drugie: masz podkategorie;
Go to the top of the page
+Quote Post
Plikownik
post
Post #3





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 19.01.2006

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


ok, dzięki, zrobiłem tak i napisałem to , co chcialem , tylko mam pytanie , czy można robić dwie pętle w jednej ? Coś w stylu:

  1. <?php
  2.  
  3. while($dane = mysql_fetch_array($zapytanie))
  4. {
  5.  //dane  
  6.  
  7. $zapytanie2 = mysql_query("SELECT * FROM download_cat WHERE parentId='".$dane['id']."'");
  8.  
  9. while($dane2 = mysql_fetch_array($zapytanie2))
  10. {
  11.  echo $dane2['nazwa'].'<br />';'
  12.  }
  13.  
  14.  
  15. }
  16.  
  17. ?>


(nie jestem pewnien czy na 100% poprawnie napisałem te pętle, gdyż pisałem je z pamięci)

Ten post edytował Plikownik 9.02.2006, 11:56:32


--------------------
Windows XP | Telewizja, Radio
Go to the top of the page
+Quote Post
kszychu
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Można.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
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: 21.08.2025 - 23:22