package main import ( "net/http" "html/template" "fmt" "database/sql" _ "github.com/go-sql-driver/mysql" "time" ) type Plan struct{ Serie int Powtorzenia int Nazwa string Ciezar int Opis string data_t string } type Cwiczenie struct{ Opis string Rodzaj string Nazwa string Zdjecie string } type CwiczenieTabela struct{ Id_cwiczenie int Nazwa string } 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 } type uzytkownicy struct { Login string `db:"login"` } var tmpl2 = template.Must(template.ParseGlob("planowanieTreningu.html")) var tmpl3 = template.Must(template.ParseGlob("cwiczenie.html")) var tmpl4 = template.Must(template.ParseGlob("wyniki.html")) var tmpl = template.Must(template.ParseGlob("koszyk.html")) func baza(){ db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza") if err != nil { panic(err.Error()) } 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()) // } // 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) // } // tmpl2.ExecuteTemplate(w, "Index", res) // } 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 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) 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 } 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) } 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) // 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) }