Prześlij pliki do 'trening-planer'

This commit is contained in:
Karolina Słonka 2018-12-30 23:56:25 +00:00
parent c33790a017
commit 7c33b5ab36
2 changed files with 399 additions and 32 deletions

View File

@ -7,6 +7,7 @@ import (
"fmt" "fmt"
"database/sql" "database/sql"
_ "github.com/go-sql-driver/mysql" _ "github.com/go-sql-driver/mysql"
"time"
) )
type Plan struct{ type Plan struct{
@ -15,6 +16,7 @@ type Plan struct{
Nazwa string Nazwa string
Ciezar int Ciezar int
Opis string Opis string
data_t string
} }
type Cwiczenie struct{ type Cwiczenie struct{
Opis string Opis string
@ -26,6 +28,20 @@ type CwiczenieTabela struct{
Id_cwiczenie int Id_cwiczenie int
Nazwa string 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 { type uzytkownicy struct {
@ -34,37 +50,46 @@ type uzytkownicy struct {
var tmpl2 = template.Must(template.ParseGlob("planowanieTreningu.html")) var tmpl2 = template.Must(template.ParseGlob("planowanieTreningu.html"))
var tmpl3 = template.Must(template.ParseGlob("cwiczenie.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")) var tmpl = template.Must(template.ParseGlob("koszyk.html"))
func planowanieTreningu2(w http.ResponseWriter, r *http.Request) { func baza(){
db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza")
// dodawanie do bazy z geta
db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza")
if err != nil { if err != nil {
panic(err.Error()) panic(err.Error())
} }
defer db.Close()
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 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) { func planowanieTreningu(w http.ResponseWriter, r *http.Request) {
@ -100,7 +125,6 @@ Powtorzenia := r.FormValue("Powtorzenia")
Ciezar := r.FormValue("Ciezar") Ciezar := r.FormValue("Ciezar")
Serie := r.FormValue("Serie") Serie := r.FormValue("Serie")
Nazwa := r.FormValue("Nazwa") Nazwa := r.FormValue("Nazwa")
fmt.Printf(Nazwa)
db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza") db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza")
if err != nil { if err != nil {
@ -136,8 +160,6 @@ rows, err := db.Query("INSERT INTO trening_cel (id_cwiczenie, id_uzytkownik, pow
func wypiszHandler(w http.ResponseWriter, r *http.Request) { func wypiszHandler(w http.ResponseWriter, r *http.Request) {
// dodawanie do bazy z geta
if r.Method == "POST" { if r.Method == "POST" {
Powtorzenia := r.FormValue("Powtorzenia") Powtorzenia := r.FormValue("Powtorzenia")
Ciezar := r.FormValue("Ciezar") Ciezar := r.FormValue("Ciezar")
@ -159,7 +181,10 @@ var id_cwiczenie int
err = rows.Scan(&id_cwiczenie) err = rows.Scan(&id_cwiczenie)
emp.Id_cwiczenie = id_cwiczenie emp.Id_cwiczenie = id_cwiczenie
//odkomentowac pozniej //odkomentowac pozniej
rows, err := db.Query("INSERT INTO trening_rzeczywisty (id_cwiczenia, id_uzytkownik, powtorzenia, ciezar,serie) VALUES (?, 1, ?, ?, ? )", id_cwiczenie, Powtorzenia, Ciezar, Serie) 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 { if err != nil {
panic(err.Error()) panic(err.Error())
@ -169,7 +194,6 @@ rows, err := db.Query("INSERT INTO trening_rzeczywisty (id_cwiczenia, id_uzytkow
} }
} }
//koniec dodawania do bazy z geta //koniec dodawania do bazy z geta
//wyświetlanie treningu //wyświetlanie treningu
@ -268,6 +292,215 @@ emp.Nazwa =nazwa
} }
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() { func main() {
@ -315,9 +548,13 @@ func main() {
http.HandleFunc("/wypisz/", wypiszHandler) http.HandleFunc("/wypisz/", wypiszHandler)
http.HandleFunc("/logowanie/", logowanieHandler) http.HandleFunc("/logowanie/", logowanieHandler)
http.HandleFunc("/planer/", planowanieTreningu) http.HandleFunc("/planer/", planowanieTreningu)
http.HandleFunc("/planer2/", planowanieTreningu2) // http.HandleFunc("/planer2/", planowanieTreningu2)
http.HandleFunc("/cwiczenie/", opisCwiczenia) http.HandleFunc("/cwiczenie/", opisCwiczenia)
http.ListenAndServe(":8070", nil) http.HandleFunc("/wyniki/", wynikiHandler)
http.HandleFunc("/test/", testHandler)
http.HandleFunc("/dodajcwiczenie/", dodaj_cwiczenieHandler)
http.HandleFunc("/start/", start)
http.ListenAndServe(":8009", nil)
} }

130
trening-planer/wyniki.html Normal file
View File

@ -0,0 +1,130 @@
{{ define "Index" }}
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Rejestracja</title><link rel="Shortcut icon" href="img/logo2.jpg" />
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet">
<link rel="Stylesheet" type="text/css" href="/static/css_moje/style_moje.css" />
<link href="http://fonts.googleapis.com/css?family=Roboto:400,700,400italic,500italic&subset=latin,latin-ext" rel="stylesheet">
<style>
body {
font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
}</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js"></script>
</head>
<body>
<div class="row">
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed"
data-toggle="collapse"
data-target="#mainmenu"
aria-expanded="false">
<span class="sr-only">Przełącznik nawigacji</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse navbar-right mainmenu" id="mainmenu">
<ul class="nav navbar-nav">
<li><a class="nav-link" href="/logowanie/">Logowanie</a>
<li><a class="nav-link" href="/planer/">Zaplanuj nowy trening</a>
<li><a class="nav-link" href="/wypisz/">Twoj trening</a>
<li><a class="btn btn-default" href="/wyniki/">Wyniki</a>
<li><a class="nav-link" href="/dodajcwiczenie/">Dodaj ćwiczenie</a>
<li><a class="nav-link" href="/dodajcwiczenie/">Ustawienia</a>
</ul>
</div>
</div>
</nav>
</div>
<br>
<br>
<div class="container" style="margin-top:100px;">
<div class="row">
<div class="rejestracja col-lg-12">
<span style="font-size: 18px">{{range.}}{{.Nazwa}}{{end}}
</span>
<canvas id="{{range.}}{{.NumerCwiczenia}}{{end}}" width="400" height="150"></canvas>
<script>
var ctx = document.getElementById("{{range.}}{{.NumerCwiczenia}}{{end}}");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"],
datasets: [{
label: 'Twoje wyniki',
data: [
{{range.}}
{{range .Wyniki}}
{{.Ciezar_rzecz}},
{{end}} {{end}}
],
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
],
borderColor: [
'rgba(255,99,132,1)',
],
borderWidth: 1
},
{
label: 'Twój cel',
data: [{{range.}}
{{range .Wyniki}}
{{.Ciezar_cel}},
{{end}} {{end}} ],
backgroundColor: [
'rgba(65, 99, 132, 0.2)',
],
borderColor: [
'rgba(65,99,132,1)',
],
borderWidth: 1
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero:true
}
}]
}
}
});
</script>
</div> </div>
<div class="collapse navbar-collapse navbar-right form-horizontal"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</body>
</html>
{{end}}