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
adus97
post
Post #2





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

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


Cytat(trueblue @ 3.12.2020, 11:42:23 ) *
  1. SELECT id, IF(SUM(exist IS NULL), NULL, SUM(exist)) AS total
  2. FROM(
  3. SELECT p.id,IF(ps.skladniki_id IN(1,3,4)>0,1,NULL) AS exist
  4. FROM przepisy AS p
  5. INNER JOIN przepisy_skladniki AS ps ON ps.przepisy_id=p.id) AS tmp
  6. GROUP BY id
  7. HAVING total


Sprawdź takie zapytanie. Wybiera tylko przepisy (bez składników), z wybranymi składnikami 1,3,4.

P.S. Warto nazywać tabelę według krotki, którą przechowują - tabela przechowująca przepisy, nazywa się od struktury (wiersza): przepis. Osobiście klucze główne i obce nazywam tak samo. Łatwiej wtedy połapać się przy pisaniu JOIN i WHERE. Czyli: przepis.id_przepis i klucz obcy przepis_skladnik.id_przepis.


Dziękuję, Pana zapytanie działa tak jak należy. Jeżeli zabraknie przynajmniej jednego składnika do określonego przepisu to go nie wyświetli.
(IMG:https://zapodaj.net/images/7298cbdf41126.png)

Teraz natrafiłem na problem z zamieszczeniem zmiennych tablicowych do mojej kwerendy jak widzicie Państwo
$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 IN(209,258,372, 264, 255, 195)>0,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");

Pogrubione wartości zostały wpisane na sztywno przez co bedzie tylko wyszukiwało dwa przepisy: Lemoniada oraz Chipsy serowe. Ta kwerenda powinna generować automatycznie rózne cyfry w zależności od tych wprowadzonych z formularza.
(IMG:https://zapodaj.net/images/4925c20150652.png)
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: 25.08.2026 - 23:44