Error als laptop al is uitgeleend.
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)
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
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>";
}
?>
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
in plaats van:
Zijn er meerdere resultaten i.p.v. 0 of 1?
Er kan nooit meer dan 1 resultaat zijn iig nu nog wel maar laptop 2 kan niet op 2 plaatsen tegelijk worden uitgeleend snappie
Ik heb 1 record die zou moeten matchen. en dus een foutmelding zou moeten geven. Wat niet gebeurd
Staan de tijden wel in een DATE of DATETIME veld in de database?
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
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
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).
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
De query is een SELECT en die verandert niets.
Code (php)
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
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>";
}
}
}
?>
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>";
}
}
}
?>
Gebruik eens een BETWEEN:
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.
Dit geeft exact hetzelfde resultaat de query is gelukt.
SanThe schreef op 30.11.2006 14:35:
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...)