Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 14.03.2003 Skąd: Szczecin Ostrzeżenie: (0%)
|
witam,
mam dwie tabele i przykładowe dane: cat: id | cat --------------- 1 | aparat 2 | mysz 3 | monitor oferta: id | idcat | cat | producent --------------------------------- 1 | 1 | aparat | sony 2 | 2 | mysz | logitech 3 | 1 | aparat | canon 4 | 3 | monitor | nec 5 | 2 | mysz | a4tech 6 | 3 | monitor | lg 7 | 1 | aparat | minolta 8 | 2 | mysz | media-tech pytanie: jak zadać pytanie do bazy, aby kategorie (cat) wyświetlić tylko raz, mimo to, że w tabeli 'oferta' powtarzają się wielokrotnie?
w zapytaniu brakuje pewnie 'where', ale no właśnie... 'where' co? i jak później wyświetlić wyniki?
wyświetla wszystko dobrze, poza tym, że wyświetla właśnie wszystkie wystąpienia, a nie tylko raz. pozdrawiam |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%)
|
W zapytaniu tego nie osiągniesz, bo SQL zwróci tyle wierszy ile będzie rekordów w oferta.
Jeżeli to wyświetlasz w php to porób tam warunki, które będą wyświetlały tylko raz powtarzającą sie kategorię. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 20.04.2006 Skąd: Kraków/Lublin/Lubartów Ostrzeżenie: (0%)
|
Nie bardzo rozumiem pytanie. Napisz co konkretnie chesz wyświetlić z tej tabeli. Poza tym po co powtarzasz kolumnę CAT w drugiej tabeli?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) skoro jest już w pierwszej.
Jeżeli chcesz wyświetlić produkty kategoriami, to w jednym zapytaniu ci się to nie uda. Musisz do każdej kategorii zadać osobne zapytanie. |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 14.03.2003 Skąd: Szczecin Ostrzeżenie: (0%)
|
@Cienki1980
to, że jednym z rozwiązań są warunki, to już wiem. zastanawiam się, JAK zbudować taki warunek. zgadzam się z Tobą, że w zapytaniu samo 'where' nic nie da. @frickle CAT wykorzystuję do powiązań z innymi tabelami - do mojego pytania nie ma to znaczenia. wydaje mi się, że nie zrozumiałeś pytania, może zbyt zawile je zadałem...(?) wynikiem ma być wyświetlenie: aparat mysz monitor (które będą linkami do kategorii, po kliknięciu których pokaże się lista produktów danej kategorii), a nie: aparat aparat aparat monitor monitor monitor mysz mysz mysz (jeśli byśmy w zapytaniu ustawili parametr sortowania wg 'cat'), czyli wyświetlenie WSZYSTKICH kategorii WIELOKROTNIE. po zastanowieniu się zaczynam uważać rozwiązanie za bezsensowne... przy kilku produktach, to możeby się i sprawdziło ale przy kilku tysiącach produktów przejście przez bazę powodowałoby chyba zbytnie obciążenie... mimo to, jeśli ktoś z Was ma jakiś pomysł na rozwiązanie problemu, to proszę o podpowiedzi, może się w przyszłości przyda! pozdrawiam i dzięki |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 380 Pomógł: 2 Dołączył: 5.01.2007 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 14.03.2003 Skąd: Szczecin Ostrzeżenie: (0%)
|
? @MARYAAN jesteś bogiem (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif) zastanawiam się jeszcze, czy jest potrzebna tutaj klauzula 'DISTINCT'? bez niej wyniki są takie same... ale jak to się mówi: 'jak nie zaszkodzi, to pomoże' dziękuję wszystkim za pomoc! |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 380 Pomógł: 2 Dołączył: 5.01.2007 Ostrzeżenie: (0%)
|
nie przesadzaj, najprostszer ozwiazania sa najlepsze. Distinct smialo mozesz wywalic, wstawiajac go sugerowalem sie tym ze select zamiast "kilku tysiecy", zwroci maksymalnie tyle rekordow ile zawiera tablica cat. NIe wiem czy ma to jakis wplyw na wydajnosc, wydawalo mi sie to w jakis sposob sensowne wiec tak napisalem
|
|
|
|
![]() ![]() |
|
Aktualny czas: 27.12.2025 - 03:14 |