Zdravíčko,
s PHP a MySQL teprve začínám, ale potřebuji teď akutně vyřešit následující problém.
Potřeboval bych spočítat kolikrát se v tabulce tbl_zakaznik vyskytují jednotlivé hodnoty ve sloupci prod_id (takže třeba kolikrát je tam 2, kolikrát 8 apod.). Potom už jenom potřebuji, aby tyto hodnoty vynásobily cenu, která je v jiné tabulce a patří konkrétním produktům. S tím si snad poradím.
Bohužel už je to běžící aplikace a já se k ní snažím připrogramovat jenom část, kde se bude zobrazovat jak se jednotlivé produkty prodávají. K původní aplikaci samozřejmě neexistuje dokumentace. Takže se mi nechce pouštět se do předálávání celé databáze i původní aplikace.
Díky za tipy a případná nakopnutí správným směrem.
Jak na MySQL dotaz?
- slavick
- Začátečník

- Registrován: 26. zář 2006
- Bydliště: Praha
- Kontaktovat uživatele:
- matajon
- Začátečník

- Registrován: 22. lis 2005
- Bydliště: Dobruška
- Kontaktovat uživatele:
Možná by bylo dobré napsat přesnou strukturu těch dvou tabulek a jak jsou spojeny. Ale obecně by to bylo nějak takto -
Jenom spočítání výskytů -
A spojení s další tabulkou a vynásobení cenou -
Jenom spočítání výskytů -
Kód: Vybrat vše
SELECT prod_id, COUNT(prod_id) FROM tbl_zakaznik GROUP BY prod_idKód: Vybrat vše
SELECT tbl_zakaznik.prod_id, (COUNT(tbl_zakaznik.prod_id) * dalsiTabulka.cena) AS vyslednaCena FROM tbl_zakaznik INNER JOIN dalsiTabulka ON tbl_zakaznik.prod_id = dalsiTabulka.id GROUP BY tbl_zakaznik.prod_idPost powered by Microsoft® Windows Vista™ Business
No trees or animals were killed during sending this message
No trees or animals were killed during sending this message
- slavick
- Začátečník

- Registrován: 26. zář 2006
- Bydliště: Praha
- Kontaktovat uživatele:
Díky moc, vyzkouším to.
Struktura tabulek je takováhle. Nechtělo se mi to vypisovat, tak jsou to screenshoty
tbl_product

tbl_customer

V tbl_product je prod_id primárním klíčem. Stejná hodnota je i v tbl_customer. Představa je tedy taková, že by se spočítalo kolikrát se vyskytují jednotlivé prod_id v tbl_customer (jak jsem psal výše). A ty to výsledky (pole výsledků?) by se pak přiřadily podle prod_id k jednotlivým prod_name nebo prod_code (to je vcelku jedno) a vynásobila se tím cena. Celé se to má ještě vypsat do tabulky, kde bude jméno/kód produktu a za kolik se toho prodalo. Doufám, že jsem to napsal nějak pochopitelně
P.S.: Té zmršené češtiny si nevšímejte
Je to divný, ale když si nechám vypsat všechny produkty do tabulky (což zvládnu
, tak tam je čeština v pohodě. Ale to není teď ten hlavní problém 
Struktura tabulek je takováhle. Nechtělo se mi to vypisovat, tak jsou to screenshoty
tbl_product

tbl_customer

V tbl_product je prod_id primárním klíčem. Stejná hodnota je i v tbl_customer. Představa je tedy taková, že by se spočítalo kolikrát se vyskytují jednotlivé prod_id v tbl_customer (jak jsem psal výše). A ty to výsledky (pole výsledků?) by se pak přiřadily podle prod_id k jednotlivým prod_name nebo prod_code (to je vcelku jedno) a vynásobila se tím cena. Celé se to má ještě vypsat do tabulky, kde bude jméno/kód produktu a za kolik se toho prodalo. Doufám, že jsem to napsal nějak pochopitelně
P.S.: Té zmršené češtiny si nevšímejte
- martin.ol
- Začátečník

-
- Registrován: 18. srp 2006
- Bydliště: Olomouc
- Kontaktovat uživatele:
Primitivní dotaz...
Zneužiju to tu 
Pro Vás asi primitivní, ale pro mě zatím věda
Jak mu říct, že má vybrat vše z foto a z fotogalerie z řádku kde je v URL obsaženo Id z řádku ve foto?
Neboli
co napsat místo té 18, aby to byla proměnná 
Kód: Vybrat vše
$query = "SELECT * FROM `".$prefix."foto` INNER JOIN `".$prefix."fotogalerie` ON `".$prefix."fotogalerie`.`URL` LIKE '%`".$prefix."foto`.`Id`%' ORDER BY `".$prefix."foto`.`Zobrazeno` DESC LIMIT 5";Neboli
Kód: Vybrat vše
SELECT *
FROM `web_foto`
INNER JOIN `web_fotogalerie` ON `web_fotogalerie`.`URL` LIKE '%18%'
ORDER BY `web_foto`.`Zobrazeno` DESC
LIMIT 5 Desktop: MB: K9N6PGM2-V2 - Čipset NVIDIA , socket AM2+, DDR2, SATA2; GK: nVidia GT240, 512MB, DVI + HDMI; CPU: AMD ATHLON II X2 Dual-Core 3,0 GHz, 4MB; RAM: DDR2 4GB 800MHz; HDD: 2TB SATAII, 250GB SSD DVD: DVD-RAM LG; OS: Win 10 Home
- Lamicz
- Začátečník

- Registrován: 30. kvě 2005
- Bydliště: In a galaxy far away...
- Kontaktovat uživatele:
Nevim, jestli to chapu spravne, ale mam pocit, ze nemas spravne navrzenou strukturu tabulek. Provazovat pres LIKE je humus, protoze se prochazi cely tabulky a musi se parsovat ty dany vyrazy v datech. Tohle je IMHO klasicky priklad na relaci 1:N. Id fotogalerie a k ni N Id_foto.
:: DESKA :: Asus A8V-XE (VIA K8T890) :: CPU :: AMD Athlon 64 3700+ :: VGA :: ATI Asus GF7600 512MB - passive solution :: RAM :: 4x 256MB Samsung :: HDD :: 80GB Maxtor PATA ::