{"id":363,"date":"2019-11-24T00:25:59","date_gmt":"2019-11-23T23:25:59","guid":{"rendered":"http:\/\/pnott.se\/wordpress\/?p=363"},"modified":"2021-03-21T12:46:43","modified_gmt":"2021-03-21T11:46:43","slug":"traningsdagbok-1","status":"publish","type":"post","link":"https:\/\/pnott.se\/wordpress\/traningsdagbok-1\/","title":{"rendered":"Tr\u00e4ningsdagbok (1)"},"content":{"rendered":"<p>FunBeat l\u00e4gger ner. Dags att bygga en egen tr\u00e4ningsdagbok.<\/p>\n<p>Min tanke \u00e4r att g\u00f6ra en personlig blogg som passar mig, inte n\u00e5got allm\u00e4nt tillg\u00e4ngligt.<\/p>\n<p>Jag har redan tv\u00e5 RaspberryPi som snurrar d\u00e4r hemma, en med en MySQL-databas och en med en webbserver. Detta f\u00e5r bli grunden i min tr\u00e4ningsdagbok.<\/p>\n<p>Jag har best\u00e4llt hem min data fr\u00e5n FunBeat p\u00e5 denna adress:<br \/>\n<a href=\"https:\/\/funbeat-export.azurewebsites.net\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/funbeat-export.azurewebsites.net\/<\/a><\/p>\n<p>Det jag fick hem var f\u00f6ljande filer:<br \/>\n\u2022\tbasic_info.json<br \/>\n\u2022\tblog_postings.json<br \/>\n\u2022\tequipment.json<br \/>\n\u2022\ttrainings.json<br \/>\n\u2022\ttrainings.xlsx<\/p>\n<p>Det var ocks\u00e5 med en mapp \u201ddetails\u201d med ett stort antal json och fit-filer.<\/p>\n<p><strong>Idag: import av data.<\/strong><\/p>\n<p>F\u00f6rsta steget f\u00e5r bli att importera trainings.json till min MySQL-databas.<br \/>\nDet f\u00e5r bli tre tabeller:<br \/>\n\u2022\ttrainings \u2013 en tabell med alla tr\u00e4ningsaktiviteter samlade<br \/>\n\u2022\texercises \u2013 alla \u00f6vningar, med referens till tr\u00e4ningsaktiviteten<br \/>\n\u2022\tintervals \u2013 alla intervaller, med referens till tr\u00e4ningsaktiviteten<\/p>\n<p>Det h\u00e4r \u00e4r de nycklar som jag hittade i min jsonfil, och som f\u00e5r bli kolumner i databasen. Jag namnger efter FunBeat f\u00f6r enkelhets skull.<\/p>\n<p><strong>Tabell:\ttrainings<\/strong><br \/>\nstartDateTime<br \/>\ntrainingTypeName<br \/>\nnumberOfSeconds<br \/>\ncreationDateTime<br \/>\ndistance<br \/>\ndescription<br \/>\npulse<br \/>\npulseMax<br \/>\nkCal<br \/>\nrouteId<br \/>\nimportedDataFormat<br \/>\nimportedDataId<br \/>\nhasTime<br \/>\nte<br \/>\nimportedDataLocation<br \/>\nascent<br \/>\ndescent<br \/>\nintervals<br \/>\nexercises<br \/>\npointsLocation<br \/>\ncadAvg<br \/>\nrepetitions<br \/>\nisCompetition<br \/>\nequipment<\/p>\n<p><strong>Tabell:\tintervals<\/strong><br \/>\nnumberOfSeconds<br \/>\ndistance<br \/>\ncomment<\/p>\n<p><strong>Tabell:\texercises<\/strong><br \/>\ntrainingExerciseTypeName<br \/>\nreps<br \/>\nweight<br \/>\ncomment<\/p>\n<p>Senare t\u00e4nker jag mig att g\u00f6ra en import av csv-filer fr\u00e5n Garmin, och d\u00e5 l\u00e4r jag l\u00e4gga till \u00e4n del kolumner i intervals-tabellen, men det f\u00e5r komma sen.<br \/>\nNu \u00e4r det dags att g\u00e5 in i MySql<\/p>\n<p>Jag vill ha en egen databas f\u00f6r dagboken.<br \/>\nmysql&gt; create database Diary;<br \/>\nmysql&gt; show databases;<br \/>\nmysql&gt; use Diary;<\/p>\n<p>CREATE TABLE trainings<br \/>\n(id int NOT NULL,<br \/>\nstartDateTime datetime NOT NULL DEFAULT &#8216;0000-00-00 00:00:00&#8217;,<br \/>\ntrainingTypeName varchar(24) NOT NULL DEFAULT &#8221;,<br \/>\nnumberOfSeconds int NOT NULL DEFAULT &#8216;0&#8217;,<br \/>\ncreationDateTime datetime NOT NULL DEFAULT &#8216;0000-00-00 00:00:00&#8217;,<br \/>\ndistance float NOT NULL DEFAULT &#8216;0.0&#8217;,<br \/>\ndescription varchar(1200) DEFAULT &#8221;,<br \/>\npulse int NOT NULL DEFAULT &#8216;0&#8217;,<br \/>\npulseMax int NOT NULL DEFAULT &#8216;0&#8217;,<br \/>\nkCal int NOT NULL DEFAULT &#8216;0&#8217;,<br \/>\nrouteId int NOT NULL DEFAULT &#8216;0&#8217;,<br \/>\nimportedDataFormat varchar(24) NOT NULL DEFAULT &#8221;,<br \/>\nimportedDataId varchar(24) NOT NULL DEFAULT &#8221;,<br \/>\nhasTime int NOT NULL DEFAULT &#8216;0&#8217;,<br \/>\nte float NOT NULL DEFAULT &#8216;0.0&#8217;,<br \/>\nimportedDataLocation int NOT NULL DEFAULT &#8216;0&#8217;,<br \/>\nascent int NOT NULL DEFAULT &#8216;0&#8217;,<br \/>\ndescent int NOT NULL DEFAULT &#8216;0&#8217;,<br \/>\nintervals int NOT NULL DEFAULT &#8216;0&#8217;,<br \/>\nexercises int NOT NULL DEFAULT &#8216;0&#8217;,<br \/>\npointsLocation int NOT NULL DEFAULT &#8216;0&#8217;,<br \/>\ncadAvg int NOT NULL DEFAULT &#8216;0&#8217;,<br \/>\nrepetitions int NOT NULL DEFAULT &#8216;0&#8217;,<br \/>\nisCompetition int NOT NULL DEFAULT &#8216;0&#8217;,<br \/>\nequipment varchar(240) DEFAULT &#8221;,<br \/>\nPRIMARY KEY (id));<\/p>\n<p>CREATE TABLE intervals<br \/>\n(id int NOT NULL,<br \/>\nnumber int NOT NULL,<br \/>\nnumberOfSeconds int NOT NULL DEFAULT &#8216;0&#8217;,<br \/>\ndistance float NOT NULL DEFAULT &#8216;0.0&#8217;,<br \/>\ncomment varchar(240) DEFAULT &#8221;,<br \/>\nPRIMARY KEY (id,number));<\/p>\n<p>CREATE TABLE exercises<br \/>\n(id int NOT NULL,<br \/>\nnumber int NOT NULL,<br \/>\ntrainingExerciseTypeName varchar(24) DEFAULT &#8221;,<br \/>\nreps int NOT NULL DEFAULT &#8216;0&#8217;,<br \/>\nweight int NOT NULL DEFAULT &#8216;0&#8217;,<br \/>\ncomment varchar(240) DEFAULT &#8221;,<br \/>\nPRIMARY KEY (id,number));<\/p>\n<p>mysql&gt; show tables;<\/p>\n<p>S\u00e5. Nu finns de tomma tabellerna p\u00e5 plats.<\/p>\n<p>Dags att importera. Skrev ihop den h\u00e4r php-filen som g\u00f6r tricket:<\/p>\n<p><a href=\"http:\/\/pnott.se\/pontus\/diverse\/importjson.txt\" target=\"_blank\" rel=\"noopener noreferrer\">importjson.php<\/a><\/p>\n<p>N\u00e4sta steg: att visa passen p\u00e5 ett enkelt s\u00e4tt.<\/p>\n<p>EDIT 2019-11-25:<br \/>\nR\u00e4ttat create-satsen f\u00f6r exercises.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>FunBeat l\u00e4gger ner. Dags att bygga en egen tr\u00e4ningsdagbok. Min tanke \u00e4r att g\u00f6ra en personlig blogg som passar mig, inte n\u00e5got allm\u00e4nt tillg\u00e4ngligt. Jag har redan tv\u00e5 RaspberryPi som snurrar d\u00e4r hemma, en med en MySQL-databas och en med en webbserver. Detta f\u00e5r bli grunden i min tr\u00e4ningsdagbok. Jag har best\u00e4llt hem min data &hellip; <a href=\"https:\/\/pnott.se\/wordpress\/traningsdagbok-1\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Tr\u00e4ningsdagbok (1)<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-363","post","type-post","status-publish","format-standard","hentry","category-hemsidan"],"_links":{"self":[{"href":"https:\/\/pnott.se\/wordpress\/wp-json\/wp\/v2\/posts\/363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pnott.se\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pnott.se\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pnott.se\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pnott.se\/wordpress\/wp-json\/wp\/v2\/comments?post=363"}],"version-history":[{"count":6,"href":"https:\/\/pnott.se\/wordpress\/wp-json\/wp\/v2\/posts\/363\/revisions"}],"predecessor-version":[{"id":471,"href":"https:\/\/pnott.se\/wordpress\/wp-json\/wp\/v2\/posts\/363\/revisions\/471"}],"wp:attachment":[{"href":"https:\/\/pnott.se\/wordpress\/wp-json\/wp\/v2\/media?parent=363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pnott.se\/wordpress\/wp-json\/wp\/v2\/categories?post=363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pnott.se\/wordpress\/wp-json\/wp\/v2\/tags?post=363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}