Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kwerenda wyświetlająca przepisy na podstawie zaznaczonych wcześniej do niej produktów.
adus97
post 30.11.2020, 21:26:45
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Ł:


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 biggrin.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adus97
post 4.12.2020, 00:48:56
Post #2





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.11.2020

Ostrzeżenie: (0%)
-----


Udało się to co chciałem uczynić.
W pętli która pobiera dane do tablicy wystarczyło dopisać:
$zmienna = implode(",", $tablica);

następnie odnieść się z tą zmienną do kwerendy. Wszystko działa jak należy dziękuję za pomoc smile.gif

Na marginesie chciałem dodać, że gdy wyskoczyłem ze swoim pomysłem to promotor był bardzo zaskoczony, że zdecydowałem się podjęcia napisania takiej kwerendy, która będzie w pełni zautomatyzowana.
@trueblue czy mogę prosić o szersze wytłumaczenie znaczenia napisanej przez Ciebie kwerendy? Wiem, że p ps itd. są to wskażniki a je się uzywa tylko po to aby nie pisać pełnych nazw tablic.

Napewno warto ten kod zamieścić w mojej dokumentacji i chcę szerzej go opisać./
  1. SELECT *, IF(SUM(exist IS NULL), NULL, SUM(exist)) AS total FROM( SELECT p.Nazwa, p.obrazek, p.id,IF(ps.skladniki_id
  2. IN('".$dane."'),1,NULL)AS exist FROM przepisy AS p INNER JOIN przepisy_skladniki AS ps ON ps.przepisy_id=p.id) AS tmp GROUP BY id HAVING total";
  3. $zapytanie = mysqli_query($connection,"SELECT *, IF(SUM(exist IS NULL), NULL, SUM(exist)) AS total FROM( SELECT p.Nazwa, p.obrazek, p.id,IF(ps.skladniki_id
  4. IN(".$dane."),1,NULL)AS exist FROM przepisy AS p INNER JOIN przepisy_skladniki AS ps ON ps.przepisy_id=p.id) AS tmp GROUP BY id HAVING total


A jeszcze jedno czy tą kwerendę można jeszcze bardziej urozmaicić w sensie gdy brakuje nam 1-2 składników to wyświetli przepis lecz zostanie zamieszczona informacja, że brakuje jeszcze określonych składników.
Jak zostanie mi czas to chciałbym coś takiego uwzględnić w swojej pracy dyplomowej, ale nie jest to już tak obowiązkowe.

Ten post edytował adus97 3.12.2020, 21:38:13
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 28.04.2024 - 10:37