Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 3.11.2020 Ostrzeżenie: (0%)
|
[php][/php]
Dobry wieczór, Jestem w trakcie pisania pracy dyplomowej i napotkałem problem dot. wyświetlania przepisów na podstawie wcześniej zaznaczonych produktów z formularza. ZAMYSŁ: (IMG:https://zapodaj.net/images/57ee78e5bd174.png) (IMG:https://zapodaj.net/images/a19e1b9ca5a02.jpg) Chcę stworzyć kwerendę, która będzie aktywowała się w momencie spełnienia warunku: a) wszystkie składniki podane w formularzu muszą być zawarte w przepisie w przeciwnym wypadku przepis/y nie zostanie wyświetlony. Kieruję pytanie do was jak muszę przerobić swoją kwerendę aby takowa kwerenda miała byt na mojej stronie? Dla entuzjastów wysyłam plik .SQL ze strukturą bazy danych. https://pastebin.pl/view/be6ecf46 Z góry dziękuję za każdą pomoc (IMG:style_emoticons/default/biggrin.gif) |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 52 Dołączył: 18.02.2008 Ostrzeżenie: (0%)
|
Formularz nie ma tu nic do rzeczy. Twoja aplikacja działa tak, że użytkownik wybiera ileś tam składników z formularza, załóżmy że wybrał mleko (value 200), cukier (value 210) i mąkę (value 220). Te value wysyłasz z formularza. I z tych składników wyszukujesz przepisy. Problem jest w tym, że aby sprawdzić wszystkie kombinacje składników z założeniem, że min muszą być 2 składniki, musisz utworzyć takie zestawy składników:
przepis 1. 200, 210, 220 przepis 2. 200, 210 przepis 3. 200, 220 przepis 4. 210, 220 I musisz tak zrobić, bo nie znasz wszystkich przepisów i ich składników wprowadz0nych do bazy i może być przepis oparty tylko na mące i mleku, albo mące i jajkach. Takie zestawy produktów trzeba sprawdzić w warunku WHERE zapytania. Problem jest w tym, że przy wybraniu w formularzu 6,8,10 i więcej produktów ze wzoru na kombinacje bez powtórzeń tych zestawów składników będzie taka ilość, że nie ma mowy żeby skonstruować takie zapytanie. Tak jak chcesz to zrobić musisz sprawdzić wszystkie kombinacje przesłanych przez formularz produktów. Teraz Twoje zapytanie zawsze zwróci przepis z jednym lub dwoma produktami, bo tak to zapytanie działa. Osobiście zrobił bym to na odwrót. W pętli, z każdego przepisu pobrał bym składniki i sprawdził czy array_diff zwraca 0 z tablicą przesłaną z formularza. Jeśli tak, to znalazł przepis bo jego wszystkie składniki mieszczą się w przesłanych składnikach, jak większa od zera to przepis z tych składników jest niekompletny. I tak przez wszstkie przepisy, pobieram sobie id tych przepisów co array_diff zwraca 0, a później to już bajka. Ale nie jestem wyrocznią w sql-u, to tylko moje zdanie. |
|
|
|
adus97 Kwerenda wyświetlająca przepisy na podstawie zaznaczonych wcześniej do niej produktów. 30.11.2020, 21:26:45
gitbejbe może pokażesz jak to teraz robisz ? 1.12.2020, 07:10:18
adus97 mam utworzone takie zapytanie:
SELECT `prze... 1.12.2020, 17:22:37
gino Może nie odpowiem wprost na Twoje pytanie, ale war... 2.12.2020, 08:56:11
adus97 No nie wiem ja stworzyłem takie zapytanie.
o pobi... 2.12.2020, 16:18:52
adus97 To by miało sens bo prawdę mówiąc już zaczynam pow... 2.12.2020, 19:23:53
trueblue Jeśli wybiorę składniki: mąka, cukier, woda, to:
1... 2.12.2020, 19:38:20
gino trueblue z opisu autora wynika, że z przesłanych s... 2.12.2020, 19:49:41
adus97 Po wprowadzeniu składników chcę aby wyświetliło mi... 2.12.2020, 20:13:03
trueblue [SQL] pobierz, plaintext SELECT id, IF(SUM... 3.12.2020, 11:42:23
gino haha trueblue, ubiegłeś mnie, bo tez wpadłem na te... 3.12.2020, 12:06:21
trueblue Zmień:
[SQL] pobierz, plaintext IF(ps.skladnik... 3.12.2020, 14:50:50
adus97 Cytat(trueblue @ 3.12.2020, 11:42:23 ... 3.12.2020, 15:10:49
trueblue No to dodaj je do zapytania: https://www.php.net/m... 3.12.2020, 15:19:01
adus97 Udało się to co chciałem uczynić.
W pętli która p... 4.12.2020, 00:48:56 ![]() ![]() |
|
Aktualny czas: 25.08.2026 - 23:43 |