pawaroti
27.02.2007, 09:38:45
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
27.02.2007, 09:52:52
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
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
27.02.2007, 10:07:56
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.
27.02.2007, 12:02:01
SELECT id_klienta AS [b]klient[/b], sum(cena) AS [b]suma[/b], count(p.nazwa) AS [b]ile_towarow[/b]
FROM zamowienia AS z,produkty AS p
WHERE z.id_klienta IN (SELECT id_klienta FROM klienci) AND z.id_produktu=p.id_produktu
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
27.02.2007, 12:47:20
ok, dzięki za szybka pomoc