Hallo,

Ik ben nieuw op dit forum en wil graag een vraag stellen over welke structuur ik het beste kan maken in de database.
Dit is waaraan ik bezig ben:

Wordpress plugin waarin je een taak aan een dag van de week kan koppelen en de tijd.

wat ik tot nu toe heb (kan veranderd worden na jullie opmerking / feedback)
In de database heb ik 4 kolommen ID, DAG, TAAK en TIJD.
Momenteel is het zo dat ik 7 records heb:
1 maandag
2 dinsdag
3 woensdag
4 donderdag
5 vrijdag
6 zaterdag
7 zondag

De kolommen van taak en tijd zijn leeg en die kun je zelf invullen.

De taken kan ik maken met:

<select>
<option> Taak 1</option>
<option> Taak 2</option>
<option> Taak 3</option>
</select>


De tijden heb ik met een loop in php gemaakt met steeds een half uur

<?php
$start = "00:00";
$end = "23:30";

$tStart = strtotime($start);
$tEnd = strtotime($end);
$tNow = $tStart;
?>
<select>
<?php
while($tNow <= $tEnd){
  echo "<option>".date("H:i",$tNow)."</option>";
  $tNow = strtotime('+30 minutes',$tNow);
}
?>
</select>


Wat ik graag zou willen weten is als ik nu een record update bijvoorbeeld
1 maandag hoe koppel ik dan een taak en tijd hieraan en hoe kan ik als ik de pagina daarna weer open dat de opties automatisch als selected staan ?
Ik zou je loop voor de halfuren zo doen
<?php
for($u = 00; $u<=23; $u++)
{
for($m = 00; $m<60; $m+=30)
{
$time = sprintf( "%02d", $u ) .':' . sprintf( "%02d", $m );
echo '<option value="' . $time . '">' . $time . '</option>';
}
}
?>

Verder zou ik de dagen niet opslaan in de database. Ik zal hier gewoon een getal voor gebruiken. Bijv 1 voor zondag, 2 voor maandag, etc. Ik zou met zondag beginnen omdat meer PHP functies dit zo doen. Dan ben je niet afhankelijk van taal. Ik zal de 'dagen' ook gewoon opslaan in een record. Zo kan een dag ook meerdere taken hebben.
Dus - 1 1 hond uitlaten 11:00 - 2 1 auto wassen 12:00 - 3 1 lunchen 12:30 - Dan heb je dus 3 taken op zondag.
Bedoel je dat ik de dagen dan in een array zet en koopel aan de nummering zoals in de database?

Het resultaat heb ik nu zo


<?php
//fetch data
global $wpdb;
	
$table_name = $wpdb->prefix . "plantime";


$results = $wpdb->get_results( "SELECT * FROM $table_name");

if(!empty($results)){
	foreach($results as $row){ 
        $timef = $row->timefrom;
?>
	
<div class="form-group" id="<?php echo $row->id;?>">
	<ul class="plantime">
		<li class="days">
			<?php echo $row->days; ?>
		</li>
		<li class="time">
			<select>
				<?php
					for($u = 00; $u<=23; $u++){
    					for($m = 00; $m<60; $m+=30){
       	 					$time = sprintf( "%02d", $u ) .':' . sprintf( "%02d", $m );
       	 					if ($timef == $time ){ 
       	 						echo '<option value="'.$time.'" selected>' . $time . '</option>';
       	 					}else{
        						echo '<option value="'.$time.'">' . $time . '</option>';
        					}
    					}
					}
				?>
			</select>
			
		</li>
</ul>
</div>
<?php
	}
} 
?>


Wat ik dus nog wil weten is
Hoe koppel ik deze data nu aan de juiste id?

Reageren