Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kwerenda wyświetlająca przepisy na podstawie zaznaczonych wcześniej do niej produktów.
adus97
post
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)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
gino
post
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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 23:56