Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyświetlanie kilku produktów zamówionych przez jednego klienta
Forum PHP.pl > Forum > Bazy danych > MySQL
pawaroti
Mam 3 tabele:

#produkty
-id_produktu
-nazwa

#klienci
-id_klienta
-nazwisko
-adres
-tel

#zamowienia
-id
-id_produktu
-id_klienta
-data
-cena

Każdy nowy klient jest dodawany do tabeli klienci przy zamówieniu produktu z tabeli produkty. Klient składając zamówienie kilku towarów powoduje wpis w tabeli zamówienia w tylu rekordach ile towarów zamówił.
Potrzebuję zapytania bądź odpowiedniego przetworzenia wyników sql w kodzie php, nijak nie mogę sobie z tym poradzić sam a nie znalazłem podobnego tematu.
kossa
Albo nie rozumiem tego co chcesz osiągnąć albo masz problem z tak banalnym zapytaniem...

Przecież jeśli trzymasz w tabeli zamowienia id produktow i id klienta to wiesz co dany klient zamowil

  1. SELECT id_produktu form zamowienia WHERE id_klienta=$id_klienta


To zapytanie poda Tobie id produktow, teraz możesz je rozbudować o połączenie z tabela produkty aby wyciągnąć nazwy produktów.

Możesz też w drugiej pętli w drugim (zapytaniu) od razu wyciągać produkty.

Łukasz
pawaroti
tak, dokładnie wiem co zamówił. Chodzi mi tylko o złączenie zamówień założonych przez jednego klienta i wyświetlenie w jednej tabeli danych wszystkich klientów i wszystkich zamówień jakie złożyli. Tylko chcę to zrobic tak żeby wszystkie produkty zamówione przez danego klienta zostały wyświetlone w jednym wierszu.

W tej chwili wyświetla się to tak

klient 1, produkt 1, cena 1
klient 1, produkt 3, cena 3
klient 2, produkt 2, cena 2
klient 3, produkt 1, cena 1
klient 3, produkt 2, cena 2
klient 3, produkt 3, cena 3

a chciałbym tak:
klient 1, produkt 1 produkt 3, suma_ceny
klient 2, produkt 2, suma_ceny
klient 3, produkt 1 produkt 2 produkt 3, suma_ceny
Łukasz O.
  1. SELECT id_klienta AS [b]klient[/b], sum(cena) AS [b]suma[/b], count(p.nazwa) AS [b]ile_towarow[/b]
  2. FROM zamowienia AS z,produkty AS p
  3. WHERE z.id_klienta IN (SELECT id_klienta FROM klienci) AND z.id_produktu=p.id_produktu
  4. GROUP BY id_klienta

to zwróci id_klienta (klient) z łączną ceną zamówionych towarów (suma) - co do samych towarów to możesz zwrócić ich liczbę (ile_towarow) i ewentualnie później w widoku szczegółowym pobrać dokładne nazwy i ceny jednostkowe każdego produktu
pawaroti
ok, dzięki za szybka pomoc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.