Error als laptop al is uitgeleend.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jurgen assaasas

Jurgen assaasas

30/11/2006 12:39:00
Quote Anchor link
Ik heb een laptop systeem waarbij ik laptops kan uitlenen en nu wil ik als je de status veranderd dat dit niet mogelijk is dmv een javascript alert.

Dit werkt echter niet. Ik wil dat als de status naar "uitgeleend" wordt veranderd hij eerst controleert of de desbetreffende laptop niet uitgeleend is. Ik krijg geen errors. maar ik kan wel de status naar uitgeleend veranderen wat niet de bedoeling is.

mijn 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
<?php

    elseif($_POST['status'] == 3){
        
        $query1= "SELECT
                    
                    *
                
                FROM
                    
                    reserveringen
                
                WHERE
        
                    NOW() >= begintijd
                
                AND
                
                    NOW() <= eindtijd
                    
                AND
                    
                    laptopid="
.$_POST['laptop']."
                    
                AND
                
                    checken =3
                  "
;
                    
                $result1 = mysql_query($query1);
                
                if(mysql_num_rows($result1) == 1){

                echo "<script>alert('Uitlenen is niet mogelijk omdat laptop ".$_POST['laptop']." al is uitgeleend!')</script>";
    
                }


?>


Edit: Status 3 is de status uitgeleend in mijn database.
Gewijzigd op 01/01/1970 01:00:00 door Jurgen assaasas
 
PHP hulp

PHP hulp

19/11/2024 04:39:07
 
Martijn Wieringa

Martijn Wieringa

30/11/2006 13:46:00
Quote Anchor link
Misschien
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if(mysql_num_rows($result1) > 0)


in plaats van:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if(mysql_num_rows($result1) == 1)


Zijn er meerdere resultaten i.p.v. 0 of 1?
 
Jurgen assaasas

Jurgen assaasas

30/11/2006 13:51:00
Quote Anchor link
Er kan nooit meer dan 1 resultaat zijn iig nu nog wel maar laptop 2 kan niet op 2 plaatsen tegelijk worden uitgeleend snappie
 
Jurgen assaasas

Jurgen assaasas

30/11/2006 13:55:00
Quote Anchor link
Ik heb 1 record die zou moeten matchen. en dus een foutmelding zou moeten geven. Wat niet gebeurd
 
- SanThe -

- SanThe -

30/11/2006 14:09:00
Quote Anchor link
Staan de tijden wel in een DATE of DATETIME veld in de database?
 
Jurgen assaasas

Jurgen assaasas

30/11/2006 14:15:00
Quote Anchor link
Jep het is een date/time veld. Ik denk dat ik ietsn iet goed heb gedaan in de query maar zoals ik em lees zou hij 1 match moeten geven en dus de error

Overigens als ik echo mysql_nuw_rows($query1); doe krijg ik 0 terug dus geen match
Gewijzigd op 01/01/1970 01:00:00 door Jurgen assaasas
 
- SanThe -

- SanThe -

30/11/2006 14:21:00
Quote Anchor link
Jurgen schreef op 30.11.2006 14:15:
Jep het is een date/time veld. Ik denk dat ik ietsn iet goed heb gedaan in de query maar zoals ik em lees zou hij 1 match moeten geven en dus de error

Overigens als ik echo mysql_nuw_rows($query1); doe krijg ik 0 terug dus geen match

Zet error_reporting(E_ALL); eens aan. (Bovenin je script). En check of de query wel is gelukt. (Foutafhandeling).
 
Jurgen assaasas

Jurgen assaasas

30/11/2006 14:24:00
Quote Anchor link
Mijn query is gelukt. Want hij veranderd de status. En dat moet hij juist niet doen. Hij moet een error geven.

note:

Ik gebruik elseif omdat daarboven ook nog wat if's en elseif's staan vanwege controleren op velden.

Als alles is gelukt incl. het controleren van de status. dan zou hij query update moeten doen. en dat doet hij ook.
Gewijzigd op 01/01/1970 01:00:00 door Jurgen assaasas
 
- SanThe -

- SanThe -

30/11/2006 14:27:00
Quote Anchor link
De query is een SELECT en die verandert niets.
 
Jurgen assaasas

Jurgen assaasas

30/11/2006 14:30:00
Quote Anchor link
nee dat moet ook niet. Onder de Elseifjes heb ik een update query. Hier is de volledige 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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<?php

if($_SERVER['REQUEST_METHOD'] == "POST"){
if(empty($_POST['naam']) ||
   empty($_POST['afdeling']) ||
   empty($_POST['locatie']) ||
   empty($_POST['begin_uur']) ||
   empty($_POST['begin_minuten']) ||
   empty($_POST['begin_dag']) ||
   empty($_POST['begin_maand']) ||
   empty($_POST['begin_jaar']) ||
   empty($_POST['eind_uur']) ||
   empty($_POST['eind_minuten']) ||
   empty($_POST['eind_dag']) ||
   empty($_POST['eind_maand']) ||
   empty($_POST['eind_jaar']) ){
  
echo "<script>alert('vul alle velden in!')</script>";
}

        elseif($_POST['begin_uur'] > 23 ){
        echo "<script>alert('Vul een juist begin uur in (00 - 23)')</script>";
        }


        elseif($_POST['eind_uur'] > 23 ){
        echo "<script>alert('Vul een juist eind uur in (00 - 23)')</script>";
        }


        elseif($_POST['begin_minuten'] > 59 ){
        echo "<script>alert('Vul een juist begin minuten in (00 - 59)')</script>";
        }


        elseif($_POST['eind_minuten'] > 59 ){
        echo "<script>alert('Vul een juist eind minuten in (00 - 59)')</script>";
        }


        elseif(checkdate($_POST['begin_maand'],
        $_POST['begin_dag'],
        $_POST['begin_jaar'])

            AND

        checkdate($_POST['eind_maand'],
        $_POST['eind_dag'],
        $_POST['eind_jaar'])
        !=
"TRUE"){

        echo "<script>alert('Vul een geldige datum in!')</script>";

        }


        elseif($_POST['begin_jaar'] < date('Y') OR $_POST['eind_jaar'] < date('Y')){

        echo "<script>alert('Kan geen reserveringen doen in het verleden!')</script>";
        }

            elseif($_POST['status'] == 3){
        
        $query1= "SELECT
                    
                    *
                
                FROM
                    
                    reserveringen
                
                WHERE
        
                    NOW() >= begintijd
                
                AND
                
                    NOW() <= eindtijd
                    
                AND
                    
                    laptopid="
.$_POST['laptop']."
                    
                AND
                
                    checken =3
                  "
;
                    
                $result1 = mysql_query($query1);
                
                if(mysql_num_rows($result1) >= 1){

                echo "<script>alert('Uitlenen is niet mogelijk omdat laptop ".$_POST['laptop']." al is uitgeleend!')</script>";
    
                }


}

else
{
        $begindatum = $_POST['begin_jaar']."-"
                     .$_POST['begin_maand']."-"
                     .$_POST['begin_dag']." "
                     .$_POST['begin_uur'].":"
                     .$_POST['begin_minuten'].":00";

        $einddatum = $_POST['eind_jaar']."-"
                    .$_POST['eind_maand']."-"
                    .$_POST['eind_dag']." "
                    .$_POST['eind_uur'].":"
                    .$_POST['eind_minuten'].":00";


        $query_update = "UPDATE
                        
                             reserveringen
                        
                         SET
                                 naam = '"
.$_POST['naam']."',
                                afdeling = '"
.$_POST['afdeling']."',
                                laptopid = '"
.$_POST['laptop']."',
                                locatie= '"
.$_POST['locatie']."',
                                begintijd ='"
.$begindatum."',
                                eindtijd ='"
.$einddatum."',
                                checken ='"
.$_POST['actief']."',
                                ip = '"
.$_SERVER['REMOTE_ADDR']."',
                                hostname = '"
.gethostbyaddr($_SERVER['REMOTE_ADDR'])."'
                            
                            WHERE id="
.$_GET['id']."";

        mysql_query($query_update) or die("Er is iets misgegaan met de database, Neem contact op met de systeembeheerder indien dit vaker voorkomt.");

                        if(mysql_affected_rows() > 0){
                        
                            echo "Gegevens zijn opgeslagen";
                            echo "<script>window.opener.window.location.reload(true); window.self.close()</script>";
                    
                        }
else{

                            echo "<div id=\"error_message\">Er is een fout opgetreden neem contact op met de systeembeheerder indien dit             vaker voorkomt</div>";
                
                        }

        }
}

?>
 
- SanThe -

- SanThe -

30/11/2006 14:35:00
Quote Anchor link
Als ik zo even snel kijk lijkt het mij dat de update wordt uitgevoerd als er niet is gepost.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if($_SERVER['REQUEST_METHOD'] == "POST")
{

      if(empty($_POST['naam']) ||...............
      {
      }

      // en een hele boel elsif()
}
else
{
      UPDATE
}
?>
 
Frank -

Frank -

30/11/2006 14:36:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
WHERE
        
                    NOW() >= begintijd
                
                AND
                
                    NOW() <= eindtijd

Gebruik eens een BETWEEN:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
WHERE
  NOW() BETWEEN begintijd AND eindtijd

Verder moet je toch echt gaan controleren of de query wel is gelukt, je hebt de garantie dat deze altijd kan mislukken. Foutafhandeling is de basis van ieder goed systeem.
 
Jurgen assaasas

Jurgen assaasas

30/11/2006 14:54:00
Quote Anchor link
Dit geeft exact hetzelfde resultaat de query is gelukt.
 
Jurgen assaasas

Jurgen assaasas

30/11/2006 14:59:00
Quote Anchor link
SanThe schreef op 30.11.2006 14:35:
Als ik zo even snel kijk lijkt het mij dat de update wordt uitgevoerd als er niet is gepost.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if($_SERVER['REQUEST_METHOD'] == "POST")
{

      if(empty($_POST['naam']) ||...............
      {
      }

      // en een hele boel elsif()
}
else
{
      UPDATE
}
?>



Nee er komt een java popup als 1 van de velden leeg is. Als dit niet het geval is gaat hij naar de volgende etc..

Dit werkt allemaal correct enkel het controleren op beschikbaarheid dus niet(status 3 = uitgeleend dus zou hij een error meoten geven bij submit. Zo niet update...)
 



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.