PracowniaProgramowania/trening-planer/hello.go

326 lines
6.7 KiB
Go

package main
import (
"net/http"
"html/template"
"fmt"
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
type Plan struct{
Serie int
Powtorzenia int
Nazwa string
Ciezar int
Opis string
}
type Cwiczenie struct{
Opis string
Rodzaj string
Nazwa string
Zdjecie string
}
type CwiczenieTabela struct{
Id_cwiczenie int
Nazwa string
}
type uzytkownicy struct {
Login string `db:"login"`
}
var tmpl2 = template.Must(template.ParseGlob("planowanieTreningu.html"))
var tmpl3 = template.Must(template.ParseGlob("cwiczenie.html"))
var tmpl = template.Must(template.ParseGlob("koszyk.html"))
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")
fmt.Printf(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) {
// dodawanie do bazy z geta
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_rzeczywisty (id_cwiczenia, id_uzytkownik, powtorzenia, ciezar,serie) VALUES (?, 1, ?, ?, ? )", id_cwiczenie, Powtorzenia, Ciezar, Serie)
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 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.ListenAndServe(":8070", nil)
}