![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 18.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam
![]() Potrzebuje waszej pomocy. Chodzi o to, że chciałbym wyświetlić dane z bazy (dane zaznaczone w checkbox).
Mam te 2 pola i chciałbym zrobić tak, że zaznaczając 2 wyszukało by mi z bazy danych pola, które w nazwie mają Fitness i Trening ogólnorozwojowy. Pozdrawiam |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Od biedy można stworzyć takie zapytanie.
SELECT * FROM `tabela_treningu`WHERE specjalizacje IN ('".$specjalizacje[0]."', '".$specjalizacje[1]."'); |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 18.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
Chcę stworzyć wyszukiwarkę po specjalizacjach danych osób i u mnie to wygląda ta:
w bazie danych mam 3 tabele: -Osoby (ID, imie,nazwisko,lokalizacja) -Specjalizacje (ID_specjalizacji,nazwa) -TabelaŁącząca(ID,ID_specjalizacji) TabelaŁącząca łączy tabele Osoby oraz Specjalizacje. Chciałbym by użytkownik, który zaznacza pole typu checkbox (np. Fitness, trening ogólnorozwojowy) i klikając przycisk "Szukaj" wyszukiwał osób które w bazie danych mają w nazwie Specjalizacji właśnie te nazwy. Moje pytanie dotyczy zapytania. Robiąc zapytanie takie:
Pokazuje mi 2 rekordy (ta sama osoba lecz z różną nazwą speclajizacji - bo 1 osoba może mieć ich kilka) Pytanie brzmi w jaki sposób zrobić tak by rekordy się nie duplikowały lecz by pokazało np. jeden rekord który ma dwie wartości z pól checkbox? Pozdrawiam ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
to zamiast IN użyj po prostu AND
(nazwaLIKE '".$specjalizacje[0]."' AND nazwa LIKE '".$specjalizacje[1]."') |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Użyj GROUP BY na id osoby.
AND tu nic nie pomoże - nie wybierze żadnego rekordu. -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 18.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
Group by pomogło
![]() Napotkałem kolejny problem... Jako że wyszukuje poprzez ustawienie lokalizacji oraz specjalizacji rekordy nie są pokazywane w przypadku zaznaczenia tylko lokalizacji.
Macie jakieś pomysły? Zmieniając AND na OR w klauzuli WHERE dochodze tylko do tego, że pokazuje mi rekord spełniające jedno wymaganie LUB drugie. Nie wiem... może jakieś podzapytanie Pozdrawiam |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Buduj dynamicznie parametry dla klauzuli WHERE.
Nie tylko w tym przypadku rozwiąże to Twój problem, ale w przypadku kiedy dojdą nowe specjalizacje (będziesz wtedy dodawał je ręcznie w klauzuli WHERE?) -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 18.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
W jaki sposób mam budować te dynamiczne parametry?
Jakbyś mógł podpowiedzieć jak w necie to wyszukać to bym o tym poczytał ![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 18.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję, może jakoś uda mi się to ogarnąć
![]() Udało mi się zrobić dynamicznie checkboxy w taki sposób:
Moglibyście podpowiedzieć jak wysłać teraz dane do bazy danych? Póki co zrobiłem tak, że sprawdzam ID ostatniej osoby która się zapisuje tym oto zapytaniem:
i teraz chciałbym wysłać specjalizacje do tabeli która łączy osoby ze specjalizacjami. Nie wiem jak zrobić to by wysłało np do osoby o ID 8 specjalizacje o ID 1,2,3 w osobnych rekordach. W tabeli pola wyglądają tak: ID_osoby | ID_specjalizacji Chciałbym by po wyborze specjalizacji wyglądało to mniej więcej tak: ID_osoby | ID_specjalizacji 1 ------------------ 1 1 ------------------ 2 1 ------------------ 3 Pozdrawiam -------------------------------------------------- Poradziłem już sobie z problemem ![]() Zliczyłem ilość zaznaczonych specjalizacji, dałem to w pętle for i śmiga ![]() Ten post edytował Omin 5.03.2017, 13:20:20 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 07:31 |