';
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 'Sträcka: '.$row['distance'].' km | ';
echo 'Hastighet: '.round($row['distance']/$row['numberOfSeconds']*3600,2).' km/h | ';
echo 'Tempo: '.gmdate("i:s",$row['numberOfSeconds']/$row['distance']).' min/km | ';
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['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 or $row['ascent']>0 or $row['descent']>0) //Om något av de tre värdena har matats in så visas tredje raden.
{
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 ' |
';
}
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 'Namn | Reps | Vikt | Kommentar |
';
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 ''.$exerciseRow['trainingExerciseTypeName'] ;
echo ' | '.$exerciseRow['reps'];
echo ' | '.$exerciseRow['weight'];
echo ' | '.nl2br($exerciseRow['comment']);
echo ' |
';
}
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 'Tid | Sträcka | Tempo | Hastighet | Kommentar |
';
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 ''.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 ' |
';
}
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 'Datum | Träningsform | Träningstid | Sträcka |
';
echo '';
//Det finns typiskt data för flera pass som måste loopas över.
while ($row = mysql_fetch_array($result))
{
echo ''.date("Y-m-d",strtotime($row['startDateTime']));
echo ' | '.$row['trainingTypeName'];
echo ' | '.gmdate("H:i:s",$row['numberOfSeconds']);
echo ' | '.round($row['distance'],2);
echo ' |
';
}
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 'Månad | Antal pass | Träningstid | Sträcka |
';
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 ''.$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 ' |
';
}
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 'År | Antal pass | Träningstid | Sträcka |
';
echo '';
//Det finns typiskt data för flera år som måste loopas över.
while ($row = mysql_fetch_array($result))
{
echo ''.$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 ' |
';
}
echo '
';
}
//Stäng databaskoppling.
mysql_close($link);
?>