|
Serverske aplikacije i baze podataka PHP, Perl, ASP, ASP .NET, ColdFusion... MySQL, PostgreSQL, MSQL, Oracle... |
|
Alatke vezane za temu | Vrste prikaza |
14.10.2014, 15:51 | #1 |
Član
Član od: 4.4.2008.
Lokacija: Kragujevac
Poruke: 233
Zahvalnice: 8
Zahvaljeno 3 puta na 3 poruka
|
Crtanje dijagrama
Zdravo ljudi,
Radim na nekom projektu gde izmedju ostalog trebam da crtam dijagrame sa podacima vezanim za svaki dan. E sad moja firma ima neki glupi standard, i umesto da za svaki dan se vezuju podaci samo za taj dan, oni sabiraju podatke u odnosu na prethodni dan. Primer: Ime tabele: tag id_tag, datum, vrednost 1, 2014-10-1, 1 2, 2014-10-1, 1 3, 2014-10-2, 1 4, 2014-10-3, 1 5, 2014-10-3, 1 6, 2014-10-3, 1 7, 2014-10-3, 1 Po ovom znaci da za 1. u mesecu imam 2 vrednosti, za 2. jednu, za 3. imam cetiri vrednosti. E sad ja znam tako da napravim. A meni bi trebalo na ovaj nacin: Da za prvi imam vrednost 2, za drugi imam vrednost tri, i za treci imam vrednost 7. Nadam se da sam malo priblizio problem, da li moze neko da mi pomogne? Hvala unapred. |
14.10.2014, 18:03 | #2 |
Deo inventara foruma
Član od: 17.6.2011.
Poruke: 7.336
Zahvalnice: 94
Zahvaljeno 3.334 puta na 2.010 poruka
|
Re: Crtanje dijagrama
Osim u retkim slučajevima kada znaš zašto to radiš baze podataka ne treba da koristiš za skladištenje rezultata obrade podataka. Tvoja dužnost je da kreiraš bazu koja će sigurno skladištiti unete podatke (pre svega poštovati normalne forme) a za prezentaciju podataka se brine naknadna obrada (skladištene procedure, naknadni upiti, biznis logika klijentskog koda itd.)
Nisi naveo koji DBMS koristiš, pretpostaviću MySQL. Problem možeš da rešiš tako što ćeš kreirati jednu privremenu bazu i u nju smestiti sumu vrednosti grupisanih (GROUP BY) po datumu. Nakon toga podatke iz privremene tabele koristiš za računanje sukcesivne sume. Naravno problem možeš da rešiš i korišćenjem podupita pod uslovom da baza nije velika i da ne koristiš MySQL (MySQL je težak bogalj što se tiče performansi složenih upita). Kod:
-- Privremene tabele se generisu po sesiji, brišemo potencijalno postojeće da sprečimo konflikt. DROP TEMPORARY TABLE IF EXISTS izvestaj; -- Kreiranje privremene tabele za skladištenje međurezultata. CREATE TEMPORARY TABLE izvestaj ( datum date, suma_po_datumu int ); -- Unosimo rezultat sumiranja po datumu u privremenu tabelu. INSERT INTO izvestaj (SELECT datum, SUM(vrednost) AS suma_po_datumu FROM podaci GROUP BY datum); -- Generisanje krajnjeg izveštaja na osnovu međurezultata u pomoćnoj privremenoj tabeli. SELECT datum, (@total := suma_po_datumu + @total) AS ukupno FROM izvestaj, (SELECT @total := 0) reset_totala; |
14.10.2014, 18:20 | #3 |
Član
Član od: 4.4.2008.
Lokacija: Kragujevac
Poruke: 233
Zahvalnice: 8
Zahvaljeno 3 puta na 3 poruka
|
Re: Crtanje dijagrama
Da, koristim MySQL, drugu i ne znam :/.
Skriptu sam naravno skinuo sa neta i prilagodio svojim potrebama. U pitanju je javascript koji vuce podatke iz drugog fajla. Taj drugi fajl koji daje podatke izgleda ovako: PHP kod:
P.S. Hvala na onom prvom predlogu, nego nisam bas siguran kako bih gra primenio, nisam toliko vest . |
14.10.2014, 19:52 | #4 |
Deo inventara foruma
Član od: 17.6.2011.
Poruke: 7.336
Zahvalnice: 94
Zahvaljeno 3.334 puta na 2.010 poruka
|
Re: Crtanje dijagrama
Jednostavno, ceo MySQL kod smestiš u skladišnu proceduru (http://dev.mysql.com/doc/connector-n...rocedures.html) i onda je pozoveš iz PHP koda.
Na MySQL serveru izvršiš sledeće linije kako bi kreirao skladišnu proceduru pod imenom getTotal(). Nebitno je kako ćeš to da uradiš, možeš preko SQL editora phpMyAdmin-a ili bilo kog drugog klijenta. Veoma je bitno da MySQL korisnik kojeg koristiš ima odgovarajuće privilegije. Kod:
DELIMITER $$ CREATE PROCEDURE getTotal () BEGIN -- Privremene tabele se generisu po sesiji, brišemo potencijalno postojeće da sprečimo konflikt. DROP TEMPORARY TABLE IF EXISTS izvestaj$$ -- Kreiranje privremene tabele za skladištenje međurezultata. CREATE TEMPORARY TABLE izvestaj ( datum date, suma_po_datumu int )$$ -- Unosimo rezultat sumiranja po datumu u privremenu tabelu. INSERT INTO izvestaj (SELECT datum, SUM(vrednost) AS suma_po_datumu FROM podaci GROUP BY datum)$$ -- Generisanje krajnjeg izveštaja na osnovu međurezultata u pomoćnoj privremenoj tabeli. SELECT datum, (@total := suma_po_datumu + @total) AS ukupno FROM izvestaj, (SELECT @total := 0) reset_totala$$ END$$ DELIMITER ; PHP kod:
Poslednja ispravka: Neutrino (14.10.2014 u 21:28) Razlog: Pogrešan delimiter |
17.10.2014, 13:26 | #5 |
Član
Član od: 4.4.2008.
Lokacija: Kragujevac
Poruke: 233
Zahvalnice: 8
Zahvaljeno 3 puta na 3 poruka
|
Re: Crtanje dijagrama
Hvala, snasao sam se
|
Bookmarks sajtovi |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Crtanje i simulacija elektricnih kola | I like games | Aplikativni softver | 10 | 23.8.2014 18:53 |
Tabla za crtanje | TOTTFIROOB | ŠDK - Ostale komponente | 6 | 25.2.2012 14:31 |
Program za tehničko crtanje | miša topola | 2D radovi | 2 | 24.7.2011 22:02 |
AstroPlot - Program za crtanje grafika | Deimos | Programiranje | 3 | 26.3.2007 22:07 |