![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 179 Pomógł: 2 Dołączył: 17.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Nie do końca wiem jak się za to zabrać, więc opiszę do i jak
mam 2 tabele z bazie danych, np katalog i drugą kategorie. w pierwszej znajdują sie produkty, czyli id, nazwa itd, w drugiej znajdują sie natomiast kategorie, czyli też mamy id i nazwę jeden produkt może należeć do więcej niż jednej kategorii, dlatego też mam 2 rozwiązania 1) zrobic w tabeli katalog pole i tam oddzielając przecinkami podawać id kategorii i przy odczycie wiadomo expolode i robimy listę 2) zrobić 3 tabele łączącą obie tak że mamy podane id kategorii i id produktu, zatem można w ten sposób dodać kilka kategorii do produktu ogólnie prosta sprawa jednak pojawia się problem gdy chcę np zrobić wyszukiwarkę w której np zaznaczam 3 kategorię do których ma należeć dany produkt. sposobem nr 1 można by użyć like jednak gdy id jest np dwucyfrowe to jak pytam o id 1 to pokaże się też 10, 11 ... i tak dalej, co do sposobu nr 2 właśnie nie mogłem nic konkretnego wymyślić pytanie więc jak to zrobić, bo zdaję sobie sprawę że problem ten zapewne jest banalny (IMG:style_emoticons/default/smile.gif) Ten post edytował stroju 11.01.2010, 13:37:48 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Zrób tabelę, którą wykorzystasz do złączenia - jak sam napisałeś. Odpowiednie zapytanie i będzie ok.
Pokaż te tabele, pokaż jakie pola, ich typ i długość. Ten post edytował fifi209 10.01.2010, 23:55:58 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 179 Pomógł: 2 Dołączył: 17.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
nie mam jeszcze tych tabel, na razie to ja myślę jak to wykonać, jednak no id będą zapewne w int długość 9, name varchar do 255, połączenie to będzie tabela z 2 kolumnami obie int 9 w których będą numery id łączące id produktu z id kategorii, prosta konstrukcja, i koncepcji brak jak napisać zapytanie aby pokazało produkt który należy do 2 kategorii jednocześnie, a nie ze należy do jednej lub do drugiej.
Ten post edytował stroju 11.01.2010, 00:12:43 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 664 Pomógł: 169 Dołączył: 8.01.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Tak mniej więcej mi się widzą te tabele:
,a co do zapytania to chyba:
Jeśli chodzi o zapytanie to nie jestem do końca pewien, bo pisane na szybko, ale powinno działać. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 179 Pomógł: 2 Dołączył: 17.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
dokładnie o to chodziło, dobrze zrobione, wielkie dzięki za pomoc (IMG:style_emoticons/default/smile.gif)
jednak jak tak chwilę szperałem to zobaczyłem że wyszukuję tych rekordów które są wymienione, a nie tych które należą do obu.. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 664 Pomógł: 169 Dołączył: 8.01.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Faktycznie, moja wina:)
Spróbuj tego:
Powinno być lepiej. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 179 Pomógł: 2 Dołączył: 17.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
to rozwiązanie niestety nie działa w ogóle, zamysł podobny do mojego jak wcześnie próbowałem ale ten również nie działa
istnieje w ogóle w mysql tego typu dyrektywa aby zrobić takie zapytanie?? czy trzeba kombinować (IMG:style_emoticons/default/questionmark.gif) Ten post edytował stroju 11.01.2010, 12:01:56 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 664 Pomógł: 169 Dołączył: 8.01.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Może tak?
Albo może coś z operatorem EXISTS:
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 179 Pomógł: 2 Dołączył: 17.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
zwraca błąd w bazie przy zapytaniu, niestety nadal nic, myślę że trzeba by to rozpisać w php w pętlach i na podstawie pętli coś wykombinować.. bo z tym zapytaniem coś nie chce wyjść.. lub jeszcze w inny sposób konstruować tabele, może by pomogło, będę kombinować
ktoś coś jeszcze może zna?? |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 664 Pomógł: 169 Dołączył: 8.01.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Stworzyłem sobie w tą tabelę i okazało się to naprawdę banalne, zresztą tak jest najczęściej:)
Tutaj masz zapytanie, działa na 100 %
Pozdrawiam. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 179 Pomógł: 2 Dołączył: 17.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
wczoraj siedziałem z tym i tak bawiąc się doszedłem do podobnego rezultatu z bardzo podobnym wynikiem, także dzięki za pomoc oczywiście sporo mi pomogły Twoje podpowiedzi (IMG:style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 10:09 |