![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 11.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
witam, chce na swojej stronie (sklep internetowy) wyswietlac kategorie przedmiotow jakie sprzedaje, pobrane z bazy, a po kliknieciu na nie uzytkownik ma zobaczyc liste produktow pobrana z bazy z danej kategorii, nastepnie po kliknieciu na produkt wyswietla sie strona z jego opisem.
zalozmy wersje uproszczona: mam dwie tabele: 1. categories - z polami: categoryId, category 2. products - z polami: productId, categoryId, productName Dajmy na to ze w tabeli categories mam 2 pola: Bluzki i Sukienki, a w tabeli products jakies tam produkty z obu kategorii, ktore wiaza sie z tabela categories polem categoryId Mój problem polega na tym, ze w momencie kiedy mam tylko 1 kategorie, to wszystko wyswietla sie super. Pokazuje sie nazwa kategorii, jak ja klikne to pod spodem pokazuje sie lista produktow z tej kategorii. Problem sie pojawia, gdy wrzucam do tabeli z kategoriami inne kategorie, tak ze są np. dwie (np. pierwsza to 'bluzki' druga-'sukienki') - nazwy kategorii sie wyswietlaja, ale po kliknieciu na 'Bluzki' nie pojawia sie absolutnie nic (tak jakby nie wchodzil w if-a z $_GET['ctgr']), a jak klikne na druga kategorie, lub gdy jest ich wiecej - ostatnia, to wyswietlaja sie wszystkie produkty z tej ostatniej w tabeli kategorii, jak rowniez po kliknieciu na produkt pojawia sie strona z opisem. co moze byc nie tak? jak to inaczej mozna wyswietlic, skoro to mi nie dziala? pomozcie, bo juz 3 dni glowkuje i nie mam zielonego pomyslu. fragment b.uproszczonego kodu;) : (plik nazywa się test.php) $query="select * from categories"; $result=mysql_query($query) or die("Couldn't execute query."); while($row=mysql_fetch_array($result)) { $categoryId=$row['categoryId']; echo "<tr><td><a href=\"test.php?ctgr=".$categoryId."\">".$row['category']."</a></td></tr>"; } if ($_GET['ctgr']==$categoryId) { $query2="SELECT * from products where categoryId=$categoryId"; $result2=mysql_query($query2) or die("Couldn't execute query 2."); while($row2=mysql_fetch_array($result2)) { echo "<tr><td><a href=\"products.php?ctgr=".$categoryId."&itemId=".$row2['productId']."\">".$row2['productName']."</a></td></tr>"; } } |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
albo usun ifa i do where daj $_GET['ctgr']
albo wrzuć całość do pętli z kategoriami ps. dawaj kod do bbcode -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 11.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
sorki za ten kod:) dzieki za podpowiedz, umiescilam w kwerendzie $_GET['ctgr']. ale nie moglam tego wszystkiego zrobic w tym samym while'u, w ktorym wyciagam z bazy kategorie, bo produkty pojawiaja sie w innej tabelce:) rozwiazalam to tak, jesli nie ma zadnej kategorii (if($_GET['ctgr']=="")) to wyswietla mi sie to samo co przed wybraniem kategorii, a w elsie umiescilam reszte kodu, wyciagajaca z bazy produkty wedle kategorii. tylko nie wiem czy tak moze byc, bo co jesli uzytkownik wpisze sobie z palca w adresie URL "...?ctgr=costam".
w kazdym razie dzieki za odpowiedz:) |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 17:05 |