Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] pętala while() w pętli while()
Forum PHP.pl > Forum > Przedszkole
mpps
witam,
może ma ktoś z Was pomysł na rozwiązanie takiego problemu:
jest baza, w bazie tabela zawierająca dane: producent, kategoria i produkt.
chodzi o to, aby wyświetlić dane wg poniższego przykładu:

producent (w url przekazane id producenta - jest ich wielu w tabeli)

kategoria1
------------
1. produkt1
2. produkt2
3. produkt3

kategoria2
------------
1. produkt1
2. produkt2
3. produkt3

mam coś takiego:
  1. <?php
  2. $catq = mysql_query("select * from towar where idprod=$prod order by cat") or die(mysql_error()); //$prod pobrany metodą $_GET
  3. while($rek = mysql_fetch_array($catq)){
  4. echo $rek[2]; //wyświetla kategorie występujące w tabeli 'towar'
  5. }
  6.  
  7. $prodq = mysql_query("select * from towar where idprod=$prod order by cat") or die(mysql_error());
  8. while($rek = mysql_fetch_array($prodq)){
  9. echo $rek[3]; //wyświetla produkty występujące w tabeli 'oferta'
  10. }
  11. ?>
Cienki1980
  1. <?php
  2. $id_prod=$_GET['id_prod']; // przekazane id_producenta
  3.  
  4. $pyt1=mysql_query("select * from kategorie where id_producenta='".$id_prod."'");
  5. while($row1=mysql_fetch_array($pyt1))
  6. {
  7.  echo $row1['nazwa_kategori'];echo "<BR>";
  8.  $pyt2=mysql_query("select * from towary where id_kategoria='".$row1['id_kategori']."'");
  9.  while($row2=mysql_fetch_array($pyt2))
  10.  {
  11. echo $row2['nazwa_produktu'];echo "<BR>";
  12.  }
  13. }
  14. ?>

Mniej więcej coś takiego ...
mpps
dzięki - pasi biggrin.gif
trzeba tylko troszkę bardziej skomplikować zapytanie, bo inaczej wyświetli wielokrotnie tą samą kategorię, w zależności od ilości pojawień się kategorii w tabeli 'towar'.
u mnie np. pomogło coś takiego:
  1. <?php
  2. $pyt1 = mysql_query("select * from kategorie where id_producenta=$prod and kategoria in (select kategoria from towar where id_producenta=$prod) order by producent") or die(mysql_error());
  3. ?>

może trochę to skomplikowałem, ale inne rozwiązania nie dawały mi zadowalających rezultatów.
może powinienem pokombinować z 'join'?

pozdrawiam
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.