Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyswietlanie produktow z bazy na 'witrynie sklepowej'
Forum PHP.pl > Forum > PHP
chrupka
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>";
}
}
1010
albo usun ifa i do where daj $_GET['ctgr']
albo wrzuć całość do pętli z kategoriami

ps. dawaj kod do bbcode
chrupka
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:)
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.