Structuur van gegevens

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mike Jannsen

Mike Jannsen

26/10/2018 11:04:15
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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 ?
 
PHP hulp

PHP hulp

19/04/2024 13:35:55
 
Michael -

Michael -

26/10/2018 11:21:24
Quote Anchor link
Ik zou je loop voor de halfuren zo doen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?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.
 
Mike Jannsen

Mike Jannsen

26/10/2018 13:22:52
Quote Anchor link
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?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?
Gewijzigd op 26/10/2018 16:06:59 door Mike Jannsen
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.