![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 4 Dołączył: 9.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Tworzę menu które wypisuje pozycje z bazy danych. W tabeli produkty mam wypisane jakieś produkty z wartościami Rodzaj: Liściaste, Iglaste Wielkość: Niskie, Duże Z każdego rodzaju oraz wielkości mam po kilka rekordów. W tabeli wygląda to tak: Iglaste Iglaste Iglaste Iglaste Liściaste Liściaste itd... Teraz zrobiłem wypisywanie rekordu ale jak dam aby wypisał w drugim miejscu ten rekord wypisuje tak jak w poprzednim iglaste zamiast drugi rodzaj liściaste. Chodzi tutaj tylko o powtórzenia, żeby wypisał mi bez powtórzeń. Jak to zrobić? Co dodać do SELECT? Mój SELECT wygląda tak: "SELECT `Rodzaj`,`Wielkosc` FROM `produkty` " Z góry dzięki. Ten post edytował Dziadzia 15.10.2009, 14:03:45 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
DISTINCT - gdzie to umieścić pocztytaj tutaj.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 4 Dołączył: 9.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem tak:
$zapytanie = "SELECT DISTINCT `Rodzaj`,`Wielkosc` FROM `produkty` GROUP BY `Rodzaj`,`Wielkosc` "; struktura w tabeli: liściaste liściaste liściaste iglaste iglaste wcześniej wypisało liściaste dwa raz (bo w dwóch miejscach ma wypisać) to teraz wypisało 2 razy iglaste... czemu w jedno miejsce nie wpisze liściaste a w drugie miejsce iglaste? Ten post edytował Dziadzia 15.10.2009, 14:23:57 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 4 Dołączył: 9.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dalej nie działa ale zostawmy tamten problem, trochę źle go przedstawiłem. To jest kod który wypisuje rekordy z bazy danych:
$zapytanie = "SELECT DISTINCT `Id`,`Nazwa`,`Kolor`,`Rodzaj` FROM `produkty` GROUP BY `Id`,`Nazwa`,`Kolor`,`Rodzaj` "; $idzapytania = mysql_query($zapytanie); echo '<table>'; while ($wiersz = mysql_fetch_row($idzapytania)) { echo '<tr><td>'. $wiersz[0] .'</td><td>'. $wiersz[1] .'</td><td>'. $wiersz[2] .'</td><td>'. $wiersz[3] .'</td></tr>'; } echo '</table>'; działa, wypisuje ok. Tabela: Rodzaj Wielkosc Id Nazwa Cena Kolor Liściasty Niski 1 Rododendron 120 Czerwony Liściasty Niski 2 Azalia 38 Biały Liściasty Niski 3 Azalia 29 Żółty Liściasty Niski 4 Rododendron 127 Różowy Iglasty Karłowe 5 Barwinek 287 Czerwony Iglasty Karłowy 6 Berberys 452 Granatowy Teraz chcę aby wypisał tylko jeden rekord z rodzaju Liściasty i rodzaju Iglasty. Może teraz lepiej zobrazowałem problem. A próbowałem samo DISTINCT oraz z GROUP BY tak jak wyżej. oba nie działają. Ten post edytował Dziadzia 15.10.2009, 14:45:49 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 4 Dołączył: 9.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Jednak jest jeszcze jeden problem... Tym razem potrzebuję wypisać jeden rekord później coś zrobić i wypisać kolejny rekord z tej samej kolumny ale właśnie inny niż poprzedni.
robię coś takiego:
W tym momencie wypisze mi 2 rekordy takie same pod sobą... Jak to zrobić aby były one różne? Co najlepsze moja tabelka ma taką kolejność: liściasty liściasty liściasty iglasty iglasty iglasty pnącza pnącza pnącza a rekordy jakie są wypisywane to: iglasty iglasty Nie mogę tego zrobić na pętli ponieważ oba rekordy muszą mieć inny adres w linku. Jakieś propozycje? Z góry dziękuje ![]() Ten post edytował Dziadzia 15.10.2009, 17:33:07 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 1.05.2025 - 05:42 |