Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] pętala while() w pętli while(), pierwsza pętla tworzy nagłówek, druga - zawartość
mpps
post
Post #1





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

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


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


--------------------
www.mpps.pl
park maszynowy: apache 2.2.22 | php 5.4.0 | MySQL 5.0.10 | phpMyAdmin 3.5.0 | notepad ++ | pilsner urquell
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Cienki1980
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


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


--------------------
404
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%)
-----


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

Ten post edytował mpps 7.02.2007, 02:16:55


--------------------
www.mpps.pl
park maszynowy: apache 2.2.22 | php 5.4.0 | MySQL 5.0.10 | phpMyAdmin 3.5.0 | notepad ++ | pilsner urquell
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: 20.08.2025 - 08:34