2018-12-18 23:17:57 +01:00
package main
import (
"net/http"
"html/template"
"fmt"
"database/sql"
_ "github.com/go-sql-driver/mysql"
2018-12-31 00:56:25 +01:00
"time"
2018-12-18 23:17:57 +01:00
)
type Plan struct {
Serie int
Powtorzenia int
Nazwa string
Ciezar int
Opis string
2018-12-31 00:56:25 +01:00
data_t string
2018-12-18 23:17:57 +01:00
}
type Cwiczenie struct {
Opis string
Rodzaj string
Nazwa string
Zdjecie string
}
type CwiczenieTabela struct {
Id_cwiczenie int
Nazwa string
2018-12-31 00:56:25 +01:00
}
type Wyniki struct {
Ciezar_rzecz int
Ciezar_cel int
Nazwa string
}
type ww struct {
Wyniki [ ] Wyniki
Nazwa string
NumerCwiczenia int
}
type CwiczeniaWyniki struct {
Wyniki [ ] ww
2018-12-18 23:17:57 +01:00
}
type uzytkownicy struct {
Login string ` db:"login" `
}
var tmpl2 = template . Must ( template . ParseGlob ( "planowanieTreningu.html" ) )
var tmpl3 = template . Must ( template . ParseGlob ( "cwiczenie.html" ) )
2018-12-31 00:56:25 +01:00
var tmpl4 = template . Must ( template . ParseGlob ( "wyniki.html" ) )
2018-12-18 23:17:57 +01:00
var tmpl = template . Must ( template . ParseGlob ( "koszyk.html" ) )
2018-12-31 00:56:25 +01:00
func baza ( ) {
db , err := sql . Open ( "mysql" , "finley:password@tcp(127.0.0.1:3306)/baza" )
2018-12-18 23:17:57 +01:00
if err != nil {
panic ( err . Error ( ) )
}
2018-12-31 00:56:25 +01:00
defer db . Close ( )
}
// func planowanieTreningu2(w http.ResponseWriter, r *http.Request) {
// // dodawanie do bazy z geta
// db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza")
// if err != nil {
// panic(err.Error())
// }
2018-12-18 23:17:57 +01:00
2018-12-31 00:56:25 +01:00
// defer db.Close()
2018-12-18 23:17:57 +01:00
2018-12-31 00:56:25 +01:00
// rows, err := db.Query("select nazwa from baza.cwiczenie")
// emp := Plan{}
// res := []Plan{}
// for rows.Next() {
// var nazwa string
// err = rows.Scan(&nazwa)
2018-12-18 23:17:57 +01:00
2018-12-31 00:56:25 +01:00
// if err != nil {
// panic(err.Error())
// }
// emp.Nazwa = nazwa
// res = append(res, emp)
// }
// tmpl2.ExecuteTemplate(w, "Index", res)
2018-12-18 23:17:57 +01:00
2018-12-31 00:56:25 +01:00
// }
2018-12-18 23:17:57 +01:00
func planowanieTreningu ( w http . ResponseWriter , r * http . Request ) {
db , err := sql . Open ( "mysql" , "finley:password@tcp(127.0.0.1:3306)/baza" )
if err != nil {
panic ( err . Error ( ) )
}
defer db . Close ( )
rows , err := db . Query ( "select nazwa from baza.cwiczenie" )
emp := Plan { }
res := [ ] Plan { }
for rows . Next ( ) {
var nazwa string
err = rows . Scan ( & nazwa )
if err != nil {
panic ( err . Error ( ) )
}
emp . Nazwa = nazwa
res = append ( res , emp )
}
if r . Method == "POST" {
Powtorzenia := r . FormValue ( "Powtorzenia" )
Ciezar := r . FormValue ( "Ciezar" )
Serie := r . FormValue ( "Serie" )
Nazwa := r . FormValue ( "Nazwa" )
db , err := sql . Open ( "mysql" , "finley:password@tcp(127.0.0.1:3306)/baza" )
if err != nil {
panic ( err . Error ( ) )
}
defer db . Close ( )
rows , err := db . Query ( "SELECT id_cwiczenie FROM baza.cwiczenie WHERE nazwa=?" , Nazwa )
for rows . Next ( ) {
emp := CwiczenieTabela { }
var id_cwiczenie int
err = rows . Scan ( & id_cwiczenie )
emp . Id_cwiczenie = id_cwiczenie
//odkomentowac pozniej
rows , err := db . Query ( "INSERT INTO trening_cel (id_cwiczenie, id_uzytkownik, powtorzenia, ciezar,serie) VALUES (?, 1, ?, ?, ? )" , id_cwiczenie , Powtorzenia , Ciezar , Serie )
if err != nil {
panic ( err . Error ( ) )
}
defer rows . Close ( )
}
}
tmpl2 . ExecuteTemplate ( w , "Index" , res )
}
func wypiszHandler ( w http . ResponseWriter , r * http . Request ) {
if r . Method == "POST" {
Powtorzenia := r . FormValue ( "Powtorzenia" )
Ciezar := r . FormValue ( "Ciezar" )
Serie := r . FormValue ( "Serie" )
Nazwa := r . FormValue ( "Nazwa" )
db , err := sql . Open ( "mysql" , "finley:password@tcp(127.0.0.1:3306)/baza" )
if err != nil {
panic ( err . Error ( ) )
}
defer db . Close ( )
rows , err := db . Query ( "SELECT id_cwiczenie FROM baza.cwiczenie WHERE nazwa=?" , Nazwa )
for rows . Next ( ) {
emp := CwiczenieTabela { }
var id_cwiczenie int
err = rows . Scan ( & id_cwiczenie )
emp . Id_cwiczenie = id_cwiczenie
//odkomentowac pozniej
2018-12-31 00:56:25 +01:00
currentTime := time . Now ( )
data_t := currentTime . Format ( "2006-01-02" )
rows , err := db . Query ( "INSERT INTO trening_rzeczywisty (id_cwiczenia, id_uzytkownik, powtorzenia, ciezar,serie, data_t) VALUES (?, 1, ?, ?, ?, ? )" , id_cwiczenie , Powtorzenia , Ciezar , Serie , data_t )
2018-12-18 23:17:57 +01:00
if err != nil {
panic ( err . Error ( ) )
}
defer rows . Close ( )
}
}
//koniec dodawania do bazy z geta
//wyświetlanie treningu
db , err := sql . Open ( "mysql" , "finley:password@tcp(127.0.0.1:3306)/baza" )
if err != nil {
panic ( err . Error ( ) )
}
defer db . Close ( )
rows , err := db . Query ( "SELECT N.serie, N.powtorzenia, P.nazwa, N.ciezar FROM trening_cel AS N, cwiczenie AS P WHERE P.id_cwiczenie = N.id_cwiczenie" )
if err != nil {
panic ( err . Error ( ) )
}
emp := Plan { }
res := [ ] Plan { }
for rows . Next ( ) {
var serie int
var powtorzenia int
var nazwa string
var ciezar int
err = rows . Scan ( & serie , & powtorzenia , & nazwa , & ciezar )
//err = rows.Scan(&serie, &ciezar)
if err != nil {
panic ( err . Error ( ) )
}
emp . Serie = serie
emp . Powtorzenia = powtorzenia
emp . Nazwa = nazwa
emp . Ciezar = ciezar
res = append ( res , emp )
}
tmpl . ExecuteTemplate ( w , "Index" , res )
//koniec wyświetlanie trenngu
}
func logowanieHandler ( w http . ResponseWriter , r * http . Request ) {
p := Plan { Opis : "zakładka" }
t , _ := template . ParseFiles ( "logowanie.html" )
t . Execute ( w , p )
}
func opisCwiczenia ( w http . ResponseWriter , r * http . Request ) {
//wyświetlanie treningu
nazwa := r . FormValue ( "Nazwa" )
db , err := sql . Open ( "mysql" , "finley:password@tcp(127.0.0.1:3306)/baza" )
if err != nil {
panic ( err . Error ( ) )
}
defer db . Close ( )
rows , err := db . Query ( "SELECT opis, rodzaj, zdjecie FROM baza.cwiczenie where nazwa=?" , nazwa )
if err != nil {
panic ( err . Error ( ) )
}
emp := Cwiczenie { }
res := [ ] Cwiczenie { }
for rows . Next ( ) {
var opis string
var rodzaj string
var zdjecie string
err = rows . Scan ( & opis , & rodzaj , & zdjecie )
//err = rows.Scan(&serie, &ciezar)
if err != nil {
panic ( err . Error ( ) )
}
emp . Opis = opis
emp . Rodzaj = rodzaj
emp . Zdjecie = zdjecie
emp . Nazwa = nazwa
res = append ( res , emp )
}
tmpl3 . ExecuteTemplate ( w , "Index" , res )
//koniec wyświetlanie trenngu
}
2018-12-31 00:56:25 +01:00
func wynikiHandler ( w http . ResponseWriter , r * http . Request ) {
// rows, err := db.Query("SELECT P.ciezar,N.ciezar FROM baza.trening_cel AS N, baza.trening_rzeczywisty AS P, baza.cwiczenie AS C WHERE N.id = 1 and C.id_cwiczenie = P.id_cwiczenia and C.id_cwiczenie = N.id_cwiczenie")
// if err != nil {
// panic(err.Error())
// }
// rows2, err := db.Query("SELECT nazwa from baza.cwiczenie where id_cwiczenie=1")
// if err != nil {
// panic(err.Error())
// }
// emp := Wyniki{}
// res := []Wyniki{}
// for rows.Next() {
// var ciezar_rzecz int
// var ciezar_cel int
// var nazwa string
// err = rows.Scan(&ciezar_rzecz, &ciezar_cel)
// if err != nil {panic(err.Error()) }
// emp.Ciezar_rzecz = ciezar_rzecz
// emp.Ciezar_cel = ciezar_cel
// err = rows2.Scan(&nazwa)
// if err != nil {panic(err.Error()) }
// emp.Nazwa=nazwa
// res = append(res, emp)
// }
// tmpl4.ExecuteTemplate(w, "Index", res)
// rows1, err := db.Query("SELECT P.ciezar,N.ciezar FROM baza.trening_cel AS N, baza.trening_rzeczywisty AS P, baza.cwiczenie AS C WHERE N.id = 1 and C.id_cwiczenie = P.id_cwiczenia and C.id_cwiczenie = N.id_cwiczenie")
// if err != nil {
// panic(err.Error())
// }
// rows, err := db.Query("SELECT nazwa FROM baza.cwiczenie WHERE id_cwiczenie = 1")
// if err != nil {
// panic(err.Error())
// }
// emp := Wyniki{}
// res := []Wyniki{}
// for rows1.Next() {
// var ciezar_rzecz int
// var ciezar_cel int
// err = rows1.Scan(&ciezar_rzecz, &ciezar_cel)
// if err != nil {
// panic(err.Error())
// }
// emp.Ciezar_rzecz = ciezar_rzecz
// emp.Ciezar_cel = ciezar_cel
// }
// for rows.Next() {
// var nazwa string
// err = rows.Scan(&nazwa)
// if err != nil {
// panic(err.Error())
// }
// emp.Nazwa=nazwa
// res = append(res, emp)
// }
// tmpl4.ExecuteTemplate(w, "Index1", res)
// }
db , err := sql . Open ( "mysql" , "finley:password@tcp(127.0.0.1:3306)/baza" )
if err != nil {
panic ( err . Error ( ) )
}
defer db . Close ( )
for i := 1 ; i < 4 ; i ++ {
rows , err := db . Query ( "SELECT C.nazwa FROM baza.trening_cel AS N, baza.trening_rzeczywisty AS P, baza.cwiczenie AS C WHERE N.id = ? and C.id_cwiczenie = P.id_cwiczenia and C.id_cwiczenie = N.id_cwiczenie" , i )
if err != nil {
panic ( err . Error ( ) )
}
emp := ww { }
res := [ ] ww { }
for rows . Next ( ) {
var nazwa string
err = rows . Scan ( & nazwa )
if err != nil {
panic ( err . Error ( ) )
}
emp . Nazwa = nazwa
emp . NumerCwiczenia = i
rows2 , err := db . Query ( "SELECT P.ciezar, N.ciezar FROM baza.trening_cel AS N, baza.trening_rzeczywisty AS P, baza.cwiczenie AS C WHERE N.id = ? and C.id_cwiczenie = P.id_cwiczenia and C.id_cwiczenie = N.id_cwiczenie" , i )
if err != nil {
panic ( err . Error ( ) )
}
emp2 := Wyniki { }
res2 := [ ] Wyniki { }
for rows2 . Next ( ) {
var ciezar_rzecz int
var ciezar_cel int
err = rows2 . Scan ( & ciezar_rzecz , & ciezar_cel )
if err != nil {
panic ( err . Error ( ) )
}
emp2 . Ciezar_rzecz = ciezar_rzecz
emp2 . Ciezar_cel = ciezar_cel
res2 = append ( res2 , emp2 )
}
emp . Wyniki = res2
}
res = append ( res , emp )
fmt . Println ( res )
tmpl4 . ExecuteTemplate ( w , "Index" , res )
}
pp := Plan { Opis : "zakładka" }
tt , _ := template . ParseFiles ( "kon.html" )
tt . Execute ( w , pp )
}
func testHandler ( w http . ResponseWriter , r * http . Request ) {
currentTime := time . Now ( )
fmt . Println ( "YYYY-MM-DD : " , currentTime . Format ( "2006-01-02" ) )
fmt . Println ( "hehheh" )
}
func start ( w http . ResponseWriter , r * http . Request ) {
p := Plan { Opis : "zakładka" }
t , _ := template . ParseFiles ( "start.html" )
t . Execute ( w , p )
}
func dodaj_cwiczenieHandler ( w http . ResponseWriter , r * http . Request ) {
if r . Method == "POST" {
Nazwa := r . FormValue ( "Nazwa" )
Rodzaj := r . FormValue ( "Rodzaj" )
Opis := r . FormValue ( "Opis" )
Zdjecie := r . FormValue ( "Zdjecie" )
db , err := sql . Open ( "mysql" , "finley:password@tcp(127.0.0.1:3306)/baza" )
if err != nil {
panic ( err . Error ( ) )
}
defer db . Close ( )
rows , err := db . Query ( "INSERT INTO baza.cwiczenie (opis, rodzaj, nazwa, zdjecie) VALUES (?, ?, ?, ?)" , Opis , Rodzaj , Nazwa , Zdjecie )
if err != nil {
panic ( err . Error ( ) )
}
defer rows . Close ( )
}
p := Plan { Opis : "zakładka" }
t , _ := template . ParseFiles ( "dodajcwiczenie.html" )
t . Execute ( w , p )
}
2018-12-18 23:17:57 +01:00
func main ( ) {
//baza danych
db , err := sql . Open ( "mysql" , "finley:password@tcp(127.0.0.1:3306)/baza" )
if err != nil {
panic ( err . Error ( ) )
}
defer db . Close ( )
/ *
//wpisywanie do bazy
insert , err := db . Query ( "INSERT INTO trening_rzeczywisty VALUES ( 1, 1, 1, 22, 33, 44 )" )
if err != nil {
panic ( err . Error ( ) )
}
defer insert . Close ( )
* /
//wybieranie z bazy
/ * results , err := db . Query ( "SELECT login FROM uzytkownicy" )
if err != nil {
panic ( err . Error ( ) )
}
for results . Next ( ) {
var login string
err = results . Scan ( & login )
if err != nil {
panic ( err . Error ( ) )
}
fmt . Printf ( login )
} * /
/ *
//usuwanie wiersza z bazy
insertq , err := db . Query ( "DELETE FROM uzytkownicy WHERE id_uzytkownik=4" )
if err != nil {
panic ( err . Error ( ) )
}
defer insertq . Close ( )
* /
http . Handle ( "/static/" , http . StripPrefix ( "/static/" , http . FileServer ( http . Dir ( "static" ) ) ) )
http . HandleFunc ( "/wypisz/" , wypiszHandler )
http . HandleFunc ( "/logowanie/" , logowanieHandler )
http . HandleFunc ( "/planer/" , planowanieTreningu )
2018-12-31 00:56:25 +01:00
// http.HandleFunc("/planer2/", planowanieTreningu2)
http . HandleFunc ( "/cwiczenie/" , opisCwiczenia )
http . HandleFunc ( "/wyniki/" , wynikiHandler )
http . HandleFunc ( "/test/" , testHandler )
http . HandleFunc ( "/dodajcwiczenie/" , dodaj_cwiczenieHandler )
http . HandleFunc ( "/start/" , start )
http . ListenAndServe ( ":8009" , nil )
2018-12-18 23:17:57 +01:00
}