Ik wou weten hoe ik het volgende kan uitvoeren;
Ik heb een tabel waarin een score van een dag wordt vastgelegd, en wanneer er geen score is van een bepaalde dag kan de gebruiker de betreffende dag aanklikken en die alsnog invullen.
Maar nu is het zo dat de gebruiker ook een score van bijv volgende week ook kan invullen terwijl dat niet de bedoeling is.
Hoe kan ik ervoor zorgen dat als een datum voorbij vandaag, dat het niet aanklikbaar is?
mijn code:
<?php
function split_date($offset) {
$date = explode('-', $offset);
$datum['jaar'] = $date[0];
$datum['maand'] = $date[1];
$datum['dag'] = $date[2];
return $datum;
}
function get_week($offset=false) {
if (!$offset) {
$offset = date('Y-m-d');
}
$datums = split_date($offset);
$dag = $datums['dag'];
$maand = $datums['maand'];
$jaar = $datums['jaar'];
$naar_maandag = date('N', mktime(0, 0, 0, $maand, ($dag), $jaar)) - 1;
if ($naar_maandag > 0) {
$dag = $dag - $naar_maandag;
}
$day['maandag'] = date('Y-m-d', mktime(0, 0, 0, $maand, ($dag + 0), $jaar));
$day['dinsdag'] = date('Y-m-d', mktime(0, 0, 0, $maand, ($dag + 1), $jaar));
$day['woensdag'] = date('Y-m-d', mktime(0, 0, 0, $maand, ($dag + 2), $jaar));
$day['donderdag'] = date('Y-m-d', mktime(0, 0, 0, $maand, ($dag + 3), $jaar));
$day['vrijdag'] = date('Y-m-d', mktime(0, 0, 0, $maand, ($dag + 4), $jaar));
$day['zaterdag'] = date('Y-m-d', mktime(0, 0, 0, $maand, ($dag + 5), $jaar));
$day['zondag'] = date('Y-m-d', mktime(0, 0, 0, $maand, ($dag + 6), $jaar));
return $day;
}
function days_from_now($days) {
$seconds = $days * 60 * 60 * 24;
return date('Y-m-d', (time() + $seconds));
}
function get_week_num($days) {
$seconds = $days * 60 * 60 * 24;
return date('W', (time() + $seconds));
}
function get_totaal_punten($datum) {
$query = "SELECT Punten FROM `vragenlijst` WHERE `Datum`='" . $datum . "'";
$res = mysql_query($query)
or die(mysql_error());
while ($punten = mysql_fetch_array($res)) {
$array[] = $punten['Punten'];
}
/* @var $punten <type> */
$totaalpunten = 0;
foreach ($array as $punt) {
// echo $punt."<br/>";
$totaalpunten = $totaalpunten + $punt;
}
return $totaalpunten;
}
$tomorrow = mktime(0, 0, 0, date("m"), date("d")+1, date("y"));
//echo "Tomorrow is ".date("m-d-y", $tomorrow);
echo date(y-m-d);
echo '<table>';
//dagen voor in de td
$dagen = array("Week/dag", "Maandag", "Dinsdag", "Woensdag", "Donderdag","Vrijdag", "Zaterdag", "Zondag", "Gemiddelde");
echo "<table border=1px>";
//laat de dagen in een td zien en de gemiddelde
echo "<tr>";
foreach ($dagen as $dag) {
echo "<td>" . $dag . "</td>";
}
echo "</tr>";
// geeft de weeknrs aan*
$nextWeek = time() + (7 * 24 * 60 * 60);
for ($i = -2; $i < 2; $i++) { // 2 weken terug tot 1 week in de toekoms
$dagen_vanaf_nu = $i * 7; // dus als $i -2 is dan is het -14 dagen
$datum_die_ik_wil_zien = days_from_now($dagen_vanaf_nu);
$datums = get_week($datum_die_ik_wil_zien); // haald de hele week op van de datum
echo '<tr>'; // Elke week een nieuwe ROW
echo '<td>' . get_week_num($dagen_vanaf_nu) . '</td>';
$first = true;
foreach ($datums as $dag_naam => $datum) { // loopt van maandag t/m zondag
$query = mysql_query("SELECT * FROM `vragenlijst` WHERE `Datum`='" . $datum . "'") or die(mysql_error()); //loop query even langs of alles klopt
if ($query && mysql_num_rows($query) > 0) {
$punten = get_totaal_punten($datum);
echo "<td><a href='invoer2.3.php?datum=".$datum."'>" . $punten . '</a></td>';
}
elseif(morgen groter is dan vandaag)
{
echo "<td>-</td>";
}
else {
echo "<td><a href='invoer2.3.php?datum=".$datum."'>x</a></td>"; }
}
echo "</tr>";
}
echo '</table>';
?>
Ik weet dat ik iets in de elseif statement moet zetten maar wat precies, ik heb het geprobeerd met 2 variabelen 1 met de datum van vandaag en eentje met de datum van morgen wat niet wilt werken, het is de bedoeling dat de gebruiker de datums van vandaag en het verleden kan invullen maar dat van de toekomst niet.