Optellen van verschillen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rick kem

rick kem

19/06/2013 14:49:52
Quote Anchor link
Hallo,

Ik heb geen idee hoe ik aan het volgende moet beginnen.

Er zijn 2 select velden, waarin 2 tijden ingevuld dienen te worden.
Echter nu wil ik ervoor zorgen dat het verschil tussen die 2 tijden maar maximaal 92 uur mag zijn. (gedurende een week)

Alleen heb ik geen idee hoe ik hier aan moet beginnen.
Hier de code:
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<form method="POST" action="?p=openingstijden">
        <table width="100%">
            <tr>
                <td><strong>Dag</strong></td>
                <td><strong>Geopend vanaf</strong></td>
                <td><strong>Gesloten om</strong></td>
            </tr>
            
            <?php
            for ($i = 1; $i <= 7; $i++) {
            ?>

            
            <tr>
                <td width="40%">
                <?php
                if($i == '1'){
                    echo'Maandag';
                }
elseif($i == '2'){
                    echo'Dinsdag';
                }
elseif($i == '3'){
                    echo'Woensdag';
                }
elseif($i == '4'){
                    echo'Donderdag';
                }
elseif($i == '5'){
                    echo'Vrijdag';
                }
elseif($i == '6'){
                    echo'Zaterdag';
                }
elseif($i == '7'){
                    echo'Zondag';
                }
else{
                    echo'Onbekend';
                }

                ?>

                </td>
                        
                <td width="30%">
                <select name = "open">
                <?php
                for ($open = 8; $open <= 22; $open++) {
                ?>

                    <option value="<?php echo $open; ?>"><?php echo $open; ?>:00</option>
                <?php
                }
                ?>

                </select> uur
                </td>
                        
                <td width="30%">
                <select name = "closed">
                <?php
                for ($closed = 8; $closed <= 22; $closed++) {
                ?>

                    <option value="<?php echo $closed; ?>"><?php echo $closed; ?>:00</option>
                <?php
                }
                ?>

                </select> uur
                </td>
            </tr>
            <?php
            }
            ?>

            <tr>
                  <td><input type="submit" value="Bevestig openingstijden" name="confirm"></td>
               </tr>
        </table>
        </form>



Alvast bedankt.
 
PHP hulp

PHP hulp

23/12/2024 05:37:21
 
Obelix Idefix

Obelix Idefix

19/06/2013 15:11:06
Quote Anchor link
Begrijp niet veel van wat je vraagt/wilt:
Rick kem op 19/06/2013 14:49:52:
Er zijn 2 select velden, waarin 2 tijden ingevuld dienen te worden.

Er zijn per dag 2 select-velden is 14 in totaal (geen 2). Per select-veld kun je maar 1 tijd invullen.

Rick kem op 19/06/2013 14:49:52:
Echter nu wil ik ervoor zorgen dat het verschil tussen die 2 tijden maar maximaal 92 uur mag zijn. (gedurende een week)

Welke 2?
Een dag heeft 24 uur. Wat bedoel je met 92?
Gewijzigd op 19/06/2013 15:11:45 door Obelix Idefix
 
Rick kem

rick kem

19/06/2013 15:23:03
Quote Anchor link
Het gaat om openingstijden invullen.

Open
8 uur t/m 22 uur
Gesloten
8 uur t/m 22 uur

Zo ziet het eruit.

Dus de de tijd dat ze open zijn moet geteld worden

Bijv:
Open : 8 uur
Sluiten: 18 uur
Verschil : 10 uur

voor 1 dag lukt me dat wel, maar ik wil dat hij alle 7 de dagen (indien die ingevuld zijn) bij elkaar optelt.
En dat mag dan niet meer dan 92 uur zijn.


Ik hoop dat het nu duidelijk is.
 
Rick kem

rick kem

23/06/2013 10:56:10
Quote Anchor link
Ik bump dit topic nog even, omdat het probleem nog niet opgelost is.
 
Bo Ter Ham

Bo Ter Ham

23/06/2013 11:32:41
Quote Anchor link
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<form method="POST" action="?p=openingstijden">
        <table width="100%">
            <tr>
                <td><strong>Dag</strong></td>
                <td><strong>Geopend vanaf</strong></td>
                <td><strong>Gesloten om</strong></td>
            </tr>
            
            <?php
            for ($i = 1; $i <= 7; $i++) {
            ?>

            
            <tr>
                <td width="40%">
                <?php
                if($i == '1'){
                    echo'Maandag';
                }
elseif($i == '2'){
                    echo'Dinsdag';
                }
elseif($i == '3'){
                    echo'Woensdag';
                }
elseif($i == '4'){
                    echo'Donderdag';
                }
elseif($i == '5'){
                    echo'Vrijdag';
                }
elseif($i == '6'){
                    echo'Zaterdag';
                }
elseif($i == '7'){
                    echo'Zondag';
                }
else{
                    echo'Onbekend';
                }

                ?>

                </td>
                        
                <td width="30%">
                <select name = "open[]">
                <?php
                for ($open = 8; $open <= 22; $open++) {
                ?>

                    <option value="<?php echo $open; ?>"><?php echo $open; ?>:00</option>
                <?php
                }
                ?>

                </select> uur
                </td>
                        
                <td width="30%">
                <select name = "closed[]">
                <?php
                for ($closed = 8; $closed <= 22; $closed++) {
                ?>

                    <option value="<?php echo $closed; ?>"><?php echo $closed; ?>:00</option>
                <?php
                }
                ?>

                </select> uur
                </td>
            </tr>
            <?php
            }
            ?>

            <tr>
                  <td><input type="submit" value="Bevestig openingstijden" name="confirm"></td>
               </tr>
        </table>
        </form>

Let op het verschil bij de select names.

en dan in je PHP:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    if((array_sum($_POST['closed'])-array_sum($_POST['open'])) > 92) {
        echo 'het verschil mag niet groter dan 92 uur zijn.';
    }
}

?>
 
Rick kem

rick kem

23/06/2013 14:21:54
Quote Anchor link
Ik denk dat het verkeerd begrepen is.

Voorbeeld:
Maandag 8 uur 18 uur 10 uur
Dinsdag 8 uur 18 uur 10 uur
Woensdag 8 uur 18 uur 10 uur
Donderdag 8 uur 20 uur 12 uur
Vrijdag 8 uur 18 uur 10 uur
Zaterdag 8 uur 18 uur 10 uur
Zondag 8 uur 14 uur 8 uur

$Totaal 70 uur

if($totaal > 92){
echo'Je bent meer dan 92 uur open';
}else{
// de rest van de query
}




Dit is wat ik bedoel.
 
Bo Ter Ham

Bo Ter Ham

23/06/2013 16:09:10
Quote Anchor link
In het bovenstaande script doe ik geloof ik precies wat jij bedoelt, alleen dan anders. Jij trekt de individuele sluitings en openingstijden van elkaar af en telt vervolgens het resultaat van die sommen bij elkaar op. maar ik doe het anders, ik tel de sluitingstijden bij elkaar op en trek daar vervolgens de openingstijden(die ik ook bij elkaar optel) vanaf.
dus:
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
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    $sluitingstijden = $_POST['closed']; //array(18,18,18,20,18,18,14);
    $openingstijden = $_POST['open']; //array(8,8,8,8,8,8,8);
    $totale_sluitingstijd = array_sum($_POST['closed']); //18+18+18+20+18+18+14 = 124
    $totale_openingstijd = array_sum($_POST['open']); //8+8+8+8+8+8+8 = 56
    $totaal = $totale_sluitingstijd-$totale_openingstijd; //124-56 = 68(wat afwijkt van jouw totaal(wat volgens mij niet klopt omdat bij de laatste tijd 14-8 geen 8 is)
    if($totaal > 92){
    echo'Je bent meer dan 92 uur open';
    }
else{
    // de rest van de query
    }
}

?>


maar dan op één regel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if((array_sum($_POST['closed'])-array_sum($_POST['open'])) > 92) {
    echo'Je bent meer dan 92 uur open';
}

else {
// de rest van de query
}
?>


je kan het ook één voor één doen:
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
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    $sluitingstijden = $_POST['closed'];
    $openingstijden = $_POST['open'];
    $verschiltijden = array();
    for($i=0;$i<7;$i++) {
    $verschiltijden[] = $sluitingstijden[$i]-$openingstijden[$i];
    }

    $totaal = array_sum($verschiltijden);
    if($totaal > 92){
    echo'Je bent meer dan 92 uur open';
    }
else{
    // de rest van de query
    }
}

?>
Gewijzigd op 23/06/2013 16:12:35 door Bo Ter Ham
 



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.