'; echo ''; //läs in parametrarna if (isset($_GET['y'])) $year=htmlentities($_GET['y']); if (isset($_GET['mon'])) $month=htmlentities($_GET['mon']); if (isset($_GET['id'])) $id=htmlentities($_GET['id']); if (isset($_GET['context'])) $context=htmlentities($_GET['context']); else $context='visa'; //Uppkoppling mot mySql. $link = mysql_connect('localhost', 'root', 'xxx'); if (!$link) { die('Kunde inte öppna DB: ' . mysql_error()); } //Välj databas som ska användas. mysql_select_db("Diary", $link); if (isset($id)) // // Visa detaljer för passet $id. // ----------------------------- // { //Läs in data om passet från databasen. $query='select * from trainings where id='.$id.';'; $result=mysql_query($query); //Id är unik nyckel i tabellen så om vi har träff så ät det endast en post. Alltså inget behov av att loopa. $row = mysql_fetch_array($result); if (is_array($row)) //Eftersom $row är en array så fick vi träff på $id. { //Php:s date-format D ger en engelsk trebokstavsförkortning av veckodagen. Genom att skicka in en array med översättningar till strtr så får vi veckodagarna på svenska. $transDay = array("Mon" => "måndag", "Tus" => "tisdag", "Wed" => "onsdag", "Thu" => "torsdag", "Fri" => "fredag", "Sat" => "lördag", "Sun" => "söndag"); //Rubrik echo 'Träningsdagbok, passbeskrivning

'; $timeValue=strtotime($row['startDateTime']); $date=date("Y-m-d",$timeValue); $day=strtr(date("D",$timeValue),$transDay); $time=date("H:i",$timeValue); $duration=gmdate("H:i:s",$row['numberOfSeconds']); echo ' '.$row['trainingTypeName'].' - '.$date.' ('.$day.') '.$duration; if ($row['hasTime']==1) echo ' Start kl '.$time; echo '

'; //Passbeskrivning visas om den finns. //nl2br gör att radbrytningarna fungerar. if($row['description']<>"") {echo nl2br($row['description']).'

';} //Övriga parametrar visas om de finns. if($row['distance']>0 or $row['pulse']>0 or $row['pulseMax']>0 or $row['kCal'] or $row['te']>0 or $row['ascent']>0 or $row['descent']>0) { echo ''; if($row['distance']>0) //Första raden visas om en sträcka har matats in. { echo ''; echo ''; echo ''; echo ''; echo ''; } if($row['pulse']>0 or $row['pulseMax']>0 or $row['kCal']>0) //Om något av de tre värdena har matats in så visas andra raden. { echo ''; } if($row['te']>0 or $row['ascent']>0 or $row['descent']>0) //Om något av de tre värdena har matats in så visas tredje raden. { echo ''; } echo '
Sträcka: '.$row['distance'].' kmHastighet: '.round($row['distance']/$row['numberOfSeconds']*3600,2).' km/hTempo: '.gmdate("i:s",$row['numberOfSeconds']/$row['distance']).' min/km
'; if($row['pulse']>0) echo 'Snittpuls: '.$row['pulse'].' slag/min'; echo ''; if($row['pulseMax']>0) echo 'Maxpuls: '.$row['pulseMax'].' slag/min'; echo ''; if($row['kCal']>0) echo 'Kaloriförbrukning: '.$row['kCal'].' kCal'; echo '
'; if($row['te']>0) echo 'Träningseffekt (TE): '.$row['te']; echo ''; if($row['ascent']>0) echo 'Höjdmeter upp: '.$row['ascent'].' m'; echo ''; if($row['descent']>0) echo 'Höjdmeter ner: '.$row['descent'].' m'; echo '
'; } //Om det finns övningar för passet så ska de visas. if($row['exercises']=="1") { echo 'Övningar'; //En rubrikrad längst upp i tabellen. echo ''; echo ''; echo ''; //Läs in övningarna från databasen. $exerciseQuery='select * from exercises where id='.$id.' order by number;'; $exerciseResult=mysql_query($exerciseQuery); //Det finns typiskt flera övningar som måste loopas över. while ($exerciseRow = mysql_fetch_array($exerciseResult)) { echo ''; } echo '
Namn RepsVikt Kommentar
'.$exerciseRow['trainingExerciseTypeName'] ; echo ''.$exerciseRow['reps']; echo ''.$exerciseRow['weight']; echo ''.nl2br($exerciseRow['comment']); echo '
'; } //Om det finns intervaller för passet så ska de visas. if($row['intervals']=="1") { echo 'Intervaller'; //En rubrikrad längst upp i tabellen. echo ''; echo ''; echo ''; //Läs in intervallerna från databasen. $intervalQuery='select * from intervals where id='.$id.' order by number;'; $intervalResult=mysql_query($intervalQuery); //Det finns typiskt flera intervaller som måste loopas över. while ($intervalRow = mysql_fetch_array($intervalResult)) { echo ''; } echo '
Tid Sträcka Tempo Hastighet Kommentar
'.gmdate("H:i:s",$intervalRow['numberOfSeconds']); echo ''.$intervalRow['distance']; echo ''; if ($intervalRow['distance']<>0) { echo gmdate("i:s",$intervalRow['numberOfSeconds']/$intervalRow['distance']); } echo ''; if ($intervalRow['numberOfSeconds']<>0) { echo round($intervalRow['distance']/$intervalRow['numberOfSeconds']*3600,2); } echo ''.nl2br($intervalRow['comment']); echo '
'; } } else //Ingen träff på $id. { echo "Felaktigt id
"; } } elseif(isset($year)) //Ett år är definierat { //$month innehåller månadens ordningsnummer. Genom att skicka in en array med översättningar till strtr så får vi månadernas namn på svenska. $transMonth = array("1" => "januari", "2" => "februari", "3" => "mars", "4" => "april", "5" => "maj", "6" => "juni", "7" => "juli", "8" => "augusti", "9" => "september", "10" => "oktober", "11" => "november", "12" => "december"); if(isset($month)) //Både år och månad är definierade. // // Visa alla pass för månad $year-$month. // -------------------------------------- // { //Månaden på svenska. $monthText=strtr($month,$transMonth); //Hämta data från databasen. $query="select id,startDateTime, trainingTypeName, numberOfSeconds, distance from trainings where year(startDateTime)=".$year." and month(startDateTime)=".$month." order by startDateTime,id;"; $result=mysql_query($query); //Rubrik echo 'Träningsdagbok för '.$monthText.' '.$year.' - '.$context.'

'; //En rubrikrad längst upp i tabellen. echo ''; echo ''; echo ''; //Det finns typiskt data för flera pass som måste loopas över. while ($row = mysql_fetch_array($result)) { echo ''; } echo '
Datum Träningsform Träningstid Sträcka
'.date("Y-m-d",strtotime($row['startDateTime'])); echo ''.$row['trainingTypeName']; echo ''.gmdate("H:i:s",$row['numberOfSeconds']); echo ''.round($row['distance'],2); echo '
'; } else //År är definierat men inte månad. // // Visa detaljer för alla månader under år $year. // ---------------------------------------------- // { //Hämta data från databasen. $query="select month(startDateTime) month,count(*) count,sum(numberOfSeconds) numberOfSeconds, sum(distance) distance from trainings where year(startDateTime)='". $year."'group by month(startDateTime) order by month(startDateTime);"; $result=mysql_query($query); //Rubrik echo 'Träningsdagbok för '.$year.' - '.$context.'

'; //En rubrikrad längst upp i tabellen. echo ''; echo ''; echo ''; //Det finns typiskt data för flera år som måste loopas över. while ($row = mysql_fetch_array($result)) { $monthText=strtr($row['month'],$transMonth); echo ''; } echo '
Månad Antal passTräningstid Sträcka
'.$monthText; echo ''.$row['count']; printf ("%d:%02d:%02d", floor($row['numberOfSeconds']/3600),floor(($row['numberOfSeconds']%3600)/60),$row['numberOfSeconds']%60); echo ''.round($row['distance'],2); echo '
'; } } else //varken $id eller $year är definierade. // // Visa detaljer för alla år som är representerade i databasen. // ------------------------------------------------------------ // { //Rubrik echo 'Träningsdagbok - '.$context.'

'; //Hämta data från databasen. $query='select year(startDateTime) year,count(*) count,sum(numberOfSeconds) numberOfSeconds, sum(distance) distance from trainings group by year(startDateTime) order by year(startDateTime);'; $result=mysql_query($query); //En rubrikrad längst upp i tabellen. echo ''; echo ''; echo ''; //Det finns typiskt data för flera år som måste loopas över. while ($row = mysql_fetch_array($result)) { echo ''; } echo '
År Antal passTräningstid Sträcka
'.$row['year'] ; echo ''.$row['count']; printf ("%d:%02d:%02d", floor($row['numberOfSeconds']/3600),floor(($row['numberOfSeconds']%3600)/60),$row['numberOfSeconds']%60); echo ''.round($row['distance'],2); echo '
'; } //Stäng databaskoppling. mysql_close($link); ?>