Egyszerű web-es reporting MySQL adatokból.

Fórumok

A helyzet az, hogy adott egy MySQL tábla, amiből szeretnék kinyerni néhány adatot. Egyszerű lekérdezésekről lenne szó:
- néhány mezőre szűrés
- aggregálás (GROUP BY) és aggregáló függvények (SUM, AVG, DISTINCT, ...)

Viszont több különböző lekérdezés lenne, amelyeket egy webes adminban újra meg újra elérhetővé kell tenni.

Azt hittem tele lesz a net PHP+MySQL megoldásokkal erre a feladatra. Feltúrtam a netet, de csak egy eszközt találtam ami megfelelő volna: mydbr néven. Ez viszont nem open, illetve az ingyenes verzió használata több mint macerás (ioncube php modul + havonta kérni kell új licencet minden szerverre).

0.0-ás megoldás hogy txt fájlban eltárolom a query-ket és amikor kell lefuttatom.
0.1-es megoldás, hogy phpMyAdmin-ban tárolom el ezeket a query-ket.

Valakinek jobb ötlete erre a feladatra?

Hozzászólások

Anno ilyennel és is küzdöttem. Én se találtam egyszerű szerveroldali alkalmazást rá. Ha reportolásról van szó, akkor mindjárt BI alkalmazást adnak a keresők, ami azért ágyúval verébre...
Szerintem érdemes inkább egy jobb klienst találni a feladatra. Nekem az eclipse-es BIRT jött be a legjobban.

Remek CSV-t lehet MySQL-ből prezizni, amit az Excelbúvár kollégának tovább lehet adni. Az "Excelbúvár" a megfelelő célszeméllyel behelyettesítendő, aki összerakja a riportot.

szerk: Az Excelbúvár semmiképp se negatív, sőt inkább pozitív, értelemben használt itt, nehogy valaki magára vegye!

A kulcsszavak jók és tartasz minden juzernek SQL és ODBC gyorstalpalót is?:) Aki kéri a riportot X rendszerből, annak nemsok fogalma szokik lenni hogy ODBC meg SQL meg ilyesmi. Ezek mindíg az "ahhoz én nem értek"-be esnek és "nekem adatok kellenek". Megkapja és búvárkodhat, akár Calc-ban akár Excel-ben, sőt akár Lotus 1-2-3-ban is tőlem. :)

15 éve _ilyen egyszerű feladatokra_ eszünkbe sem jutott volna kész megoldást keresni, mert úgyse volt.
Ma _ilyen egyszerű feladatokra_ eszünkbe sem jut kész megoldást keresni, mert bár valószínűleg van, de a megtalálása és a domesztikálása tovább tart, mint mint összecsapni pár formot és fetch-loopot.

Elhiszem, hogy igény volna, de hol húzod meg az egyszerűség határát? SQL-t még tetszőleges (vagy csak MySQL?) motoron tudjon futtatni, de grafikont még ne készítsen? Ha készítsen, akkor milyet és milyet ne (az egyszerűség kedvéért)*? Ha ne készítsen, akkor mibe tudjon exportálni, és mibe ne *?

Még csak nem is OS riportoló rendszer volt pár a kezem alatt az elmúlt 15 évben, és annyit mindegyikről el lehetett mondani, hogy vagy egyszerű nem volt, vagy érdemben használható nem.

Az egyébként hátsót körbenyalni igyekvő office-kópiák sem merészkednek odáig, hogy a táblázatkezelőjüket ilyesmihez felszkriptezzék.

Más kérdés, hogy történetesen PowerShellben lehet készíteni, és készítettem is már CSV-t Excelbe auto beolvasó, és a megadott grafikonformát eredményként visszaadó szkriptet, de ehhez is kódolni kell, csak máshol, mást -- "csak" kényelmi, olvashatósági és esztétikai szempontokban különbözik attól, mint amikor az ember gnuplottal végzi ugyanezt.

Kérlek írd le részletesebben, hogy mit kéne tudnia az eszköznek, most fejlesztek épp egy ilyent, lehet tudok segíteni.

Nálam az alap az volt, hogy user felrak x db SQL string-et egy adminon, majd ebből felépül egy lista, és ezekből egy táblázat. A táblázatban az adatok kereshetők szabadszavas keresővel, az oszlopok rendezhetőek, és a beállítások egy részét cookie-ban mentem. Még lesz hozzá időzített email küldés, adott címre adott sql string kimenetét, csatolva pdf-xlsx-xls-csv fájlokkal.

Ahogy látom az mydbr-t, ez kb azt tudja amit az enyém is fog, nagyvonalakban. Megjegyzem, grafikon rajzolást is akarok majd, csak még keresem a megfelelő JS lib-et hozzá.

(Egyébként igen, ez egy egyszerű program, én konkrétan azért készítem a sajátom, mert több területen van arra szükség, hogy legyen egy webes read-only felület egy adatbázisra, úgy, hogy egyszerűen konfigurálható a program, és kvázi 2 perc telepíteni.)

Nem teszteltem (csak legépeltem ide), de valami ilyen kell nektek.


<?php
echo ("<a href='/?i=0'>0</a>");
echo ("<a href='/?i=1'>1</a>");
echo ("<a href='/?i=2'>2</a>
< br >");

switch ($_GET[i]) {
    case 0:
        $query = ("SELECT * FROM table WHERE  column = 'something'");
        break;
    case 1:
        $query = ("SELECT * FROM table WHERE  column = 'something'");
        break;
    case 2:
        $query = ("SELECT * FROM table WHERE  column = 'something'");
        break;
}
if(!empty($query) {
echo ("< table >");

$link = mysqli_connect("localhost", "my_user", "my_password", "my_db");
$result = mysqli_query($link, $query);
while($row = mysqli_fetch_array($result)) {
echo ("< tr >
< td >".$row[column1]."< /td >
< td >".$row[column2]."< /td >
< /tr >");

}

echo ("< /table >");
mysqli_free_result($result);
mysqli_close($link);

}
?>

ps.: megfelelően formázva jquery-vel még grafikon is rajzolhatsz ebből a táblázatból. (kis rtfm)

Esetleg megnézheted a phpMyEdit-et is. Gyorsan lehet vele dolgozni. Rengeteget tud, a fóruma pedig tele van példákkal.