Träningsdagbok (4)

Så var inmatningsformuläret tillräckligt komplett för nu. Kan mata in grunddata, övningar och intervaller. Om man skickar med id för passet som POST så kan man redigera och ta bort.

Jag har lagt ut koden här: register.php

Några småändringar har tillkommit i browse-programmet. Koden till det är här: listtraining.php

Närmast så får det bli lite statistiknörderi.

Jag kommer inte att publicera hur jag låter koden interagera med WordPress.

Träningsdagbok (3)

Jag har kommit en bit till. Jag har gjort ett inmatningsformulär. Detta visar jag dock inte publikt, av naturliga skäl. Här är en skärmkopia:

Inmatningsformuläret är gjort i html5 med dess stöd för validering av inmatade data. Formuläret kan också användas för att ändra och ta bort pass.

Härnäst så ska jag lägga till möjlighet att mata in övningar och intervaller/varvtider. Sen tänker jag göra import av csv-fil från Garmin och diverse statistik.

Återkommer med kod när det hela är mer komplett.

Träningsdagbok (1)

FunBeat lägger ner. Dags att bygga en egen träningsdagbok.

Min tanke är att göra en personlig blogg som passar mig, inte något allmänt tillgängligt.

Jag har redan två RaspberryPi som snurrar där hemma, en med en MySQL-databas och en med en webbserver. Detta får bli grunden i min träningsdagbok.

Jag har beställt hem min data från FunBeat på denna adress:
https://funbeat-export.azurewebsites.net/

Det jag fick hem var följande filer:
• basic_info.json
• blog_postings.json
• equipment.json
• trainings.json
• trainings.xlsx

Det var också med en mapp ”details” med ett stort antal json och fit-filer.

Idag: import av data.

Första steget får bli att importera trainings.json till min MySQL-databas.
Det får bli tre tabeller:
• trainings – en tabell med alla träningsaktiviteter samlade
• exercises – alla övningar, med referens till träningsaktiviteten
• intervals – alla intervaller, med referens till träningsaktiviteten

Det här är de nycklar som jag hittade i min jsonfil, och som får bli kolumner i databasen. Jag namnger efter FunBeat för enkelhets skull.

Tabell: trainings
startDateTime
trainingTypeName
numberOfSeconds
creationDateTime
distance
description
pulse
pulseMax
kCal
routeId
importedDataFormat
importedDataId
hasTime
te
importedDataLocation
ascent
descent
intervals
exercises
pointsLocation
cadAvg
repetitions
isCompetition
equipment

Tabell: intervals
numberOfSeconds
distance
comment

Tabell: exercises
trainingExerciseTypeName
reps
weight
comment

Senare tänker jag mig att göra en import av csv-filer från Garmin, och då lär jag lägga till än del kolumner i intervals-tabellen, men det får komma sen.
Nu är det dags att gå in i MySql

Jag vill ha en egen databas för dagboken.
mysql> create database Diary;
mysql> show databases;
mysql> use Diary;

CREATE TABLE trainings
(id int NOT NULL,
startDateTime datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
trainingTypeName varchar(24) NOT NULL DEFAULT ”,
numberOfSeconds int NOT NULL DEFAULT ‘0’,
creationDateTime datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
distance float NOT NULL DEFAULT ‘0.0’,
description varchar(1200) DEFAULT ”,
pulse int NOT NULL DEFAULT ‘0’,
pulseMax int NOT NULL DEFAULT ‘0’,
kCal int NOT NULL DEFAULT ‘0’,
routeId int NOT NULL DEFAULT ‘0’,
importedDataFormat varchar(24) NOT NULL DEFAULT ”,
importedDataId varchar(24) NOT NULL DEFAULT ”,
hasTime int NOT NULL DEFAULT ‘0’,
te float NOT NULL DEFAULT ‘0.0’,
importedDataLocation int NOT NULL DEFAULT ‘0’,
ascent int NOT NULL DEFAULT ‘0’,
descent int NOT NULL DEFAULT ‘0’,
intervals int NOT NULL DEFAULT ‘0’,
exercises int NOT NULL DEFAULT ‘0’,
pointsLocation int NOT NULL DEFAULT ‘0’,
cadAvg int NOT NULL DEFAULT ‘0’,
repetitions int NOT NULL DEFAULT ‘0’,
isCompetition int NOT NULL DEFAULT ‘0’,
equipment varchar(240) DEFAULT ”,
PRIMARY KEY (id));

CREATE TABLE intervals
(id int NOT NULL,
number int NOT NULL,
numberOfSeconds int NOT NULL DEFAULT ‘0’,
distance float NOT NULL DEFAULT ‘0.0’,
comment varchar(240) DEFAULT ”,
PRIMARY KEY (id,number));

CREATE TABLE exercises
(id int NOT NULL,
number int NOT NULL,
trainingExerciseTypeName varchar(24) DEFAULT ”,
reps int NOT NULL DEFAULT ‘0’,
weight int NOT NULL DEFAULT ‘0’,
comment varchar(240) DEFAULT ”,
PRIMARY KEY (id,number));

mysql> show tables;

Så. Nu finns de tomma tabellerna på plats.

Dags att importera. Skrev ihop den här php-filen som gör tricket:

importjson.php

Nästa steg: att visa passen på ett enkelt sätt.

EDIT 2019-11-25:
Rättat create-satsen för exercises.

Jag låter bildsidan tala för sig själv

En och annan bild kommer nog att leta sig in i bloggen i år med, som t ex en liten blåsippa. Finns det någon färg som är så suggestiv som blåsippans så här på våren?
Blåsippa
Men med texter på bildsidan istället för bara bilder så kan den få en mer framträdande roll. Så här kommer länken till årets bildsida.

Bildsidan

Solen skiner, snön smälter

och jag gav mig ut på årets första trädgårdsvandring, på jakt efter de första små vårtecknen. Det var inte mycket att se men mina ögon som lider akut brist på grönt så här års fick i alla fall några små hoppingivande glimtar av vad som komma skall.

Timjan
En timjansbuske sticker upp ur snön och trotsar uppkäftigt vintern med sina små gröna blad.

Krokus
Krokusen laddar i gräsmattan.

Kruklök
En lök sticker upp i stora krukan på framsidan. Jag kommer inte ihåg riktigt vad det var för lök som jag petade ner, så det får bli en överraskning!