Autor Zpráva
Pako
Profil *
Zdravím, mám takový problém. Mám tabulku do které se mi zapisují objednávky - id_adresa (id adresy z další tabulky s adresami od uživatelů), id_produktu (id produktu z jiné tabulky) a množství. Když si někdo koupí třeba 3 produkty, tak do tabulky s objednávkami se mi vloží 3 řádky, kde id_objednávky bude stejné ale bude se lišit množství a id_produktu. No a teď potřebuji vypsat všechny objednávky. Jenže když vše propojím (join) výsledek je takový, že mám u té objednávky se třemi produkty 3 řádky. Takže když to chci vypsat tak se mi vše vypíše třikrát (adresa). Potřeboval bych aby se mi to vypsalo jako Id objednávky třeba 5. adresa ... a pak 3* různý typ zboží a u nich různé množství.

id. 5 Praha Jméno... produkty 1, 2 a 3
Místo toho mám
id. 5 Praha jméno produkty 1
id. 5 Praha jméno produkty 2
id. 5 Praha jméno produkty 3
Jak by se to dalo udělat? Díky
SirDoxik
Profil
Podle mne by to šlo vyřešit podmínkou, která by zjistila, jaká adresa byla před tím a pak by jí už nevypisovala dokud by tam nebyla jiná.
Pako
Profil *
SirDoxik:
Díky za reakci. Nevím, máš nějakou specifičtější představu? Používám k vypsání foreach(), takže při každém novém řádku jsou i nové hodnoty a nemám to jak porovnat...
juriad
Profil
Viz Srovnání dotazů do závislých tabulek, musíš to pak řešit na úrovni PHP. Databáze ti vrátí záznamy seřazené primárně podle id_adresa. Pak v PHP použiješ obdobu Nejčastější potíže s PHP (FAQ) » Nadpis skupiny nejen při výpisu z databáze.
tiso
Profil
Zvyčajne sa používajú 2 tabuľky - objednávka a položka objednávky.
Okrem toho si treba dať pozor na to, aby všetky údaje v objednávke boli nemenné. Takže buď zakážeš meniť adresu i produkt, alebo si uložíš všetky údaje, ktoré potrebuješ na vypísanie objednávky priamo do nej (tých 2 tabuliek spomínaných vyššie).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: