Query készítése user input alapján
2015-06-22T18:27:26+02:00
2015-06-22T19:35:19+02:00
2022-08-09T16:20:32+02:00
Odysseus
Sziasztok!

Egy PHP+MySQL alapú oldalon egy olyan funkciót építettem, hogy a felhasználók pivotálva le tudnak kérdezni adatokat, amiket CSV-be exportál a rendszer. Checkbox-okban be tudják pipálni, hogy milyen bontásban szeretnék az adatokat, valamit időszakra is tudnak szűrni. A jelenlegi megoldásom működik, de kissé barkácsolásnak tűnik. Arra lennék kíváncsi, hogy van-e erre valamilyen "best parctice" vagy angolul hogyan nevezik ezt.

A könnyebb megértés kedvéért egy példa:
Ha a felhasználó bepipálja a terméket és a típus, akkor az alábbi fog lefutni:
SELECT termek, tipus, sum(revenue) as bevetel
FROM revenues
GROUP BY termek, tipus

Ha bepipálja a színt is, akkor
SELECT termek, tipus, szin, sum(revenue) as bevetel
FROM revenues
GROUP BY termek, tipus, szin

A felhasználó ki tud választani jó pár mezőt és meg tud adni több feltételt is.
A helyzetet az teszi még színesebbé, hogy minden újabb kiválasztott mező egy-egy újabb LEFT JOIN-t jelent, valamint, ha kiválasztja az IDŐSZAK-ot is, akkor az eredményt pivottábla szerűen jeleníti meg.

Az 550 soros megoldásom nem egyszerű, de működik.
Csak arra lennék kíváncsi, hogy erre létezik-e valamilyen "best practice" vagy hogy hogyan kereshetnék rá erre angolul?

Köszönettel,
Ody
Mutasd a teljes hozzászólást!
Persze: Don't Repeat Yourself
Select $array() from $table GROUP BY $array_2()
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd