Jak na MySQL dotaz?

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
slavick
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2006
Bydliště: Praha
Kontaktovat uživatele:

Jak na MySQL dotaz?

Příspěvek od slavick »

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.
matajon
Začátečník
Začátečník
Uživatelský avatar
Registrován: 22. lis 2005
Bydliště: Dobruška
Kontaktovat uživatele:

Příspěvek od matajon »

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ů -

Kód: Vybrat vše

SELECT prod_id, COUNT(prod_id) FROM tbl_zakaznik GROUP BY prod_id
A spojení s další tabulkou a vynásobení cenou -

Kó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_id
Post powered by Microsoft® Windows Vista™ Business
No trees or animals were killed during sending this message
slavick
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2006
Bydliště: Praha
Kontaktovat uživatele:

Příspěvek od slavick »

Díky moc, vyzkouším to.
Struktura tabulek je takováhle. Nechtělo se mi to vypisovat, tak jsou to screenshoty :)

tbl_product
Obrázek


tbl_customer
Obrázek

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 :)
martin.ol
Začátečník
Začátečník
Registrován: 18. srp 2006
Bydliště: Olomouc
Kontaktovat uživatele:

Primitivní dotaz...

Příspěvek od martin.ol »

Zneužiju to tu :-)

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";
Pro Vás asi primitivní, ale pro mě zatím věda :lol: 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

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 
co napsat místo té 18, aby to byla proměnná :?:
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
Začátečník
Uživatelský avatar
Registrován: 30. kvě 2005
Bydliště: In a galaxy far away...
Kontaktovat uživatele:

Příspěvek od Lamicz »

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 ::
Odpovědět

Zpět na „Programování a web“