Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dwie pętle w jednej ?
Forum PHP.pl > Forum > PHP
Plikownik
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ć ?
mike
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;
Plikownik
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)
kszychu
Można.
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.