Insert query werkt niet
http://home.wanadoo.nl/wjnijhof/temp/2.jpg .
Ik heb de query en waardes ge'echo'ed', ik heb gecontroleerd op het gebruik van grote en kleine letters, ik heb mijn insert query vergeleken met insert queries hier op dit forum, ik heb de waardes in mijn query vergeleken met de namen in de tabel, helaas kan ik de fout niet ontdekken.
Ik heb een insert query geschreven, hierbij is het de bedoeling dat 7 rijen geinsert worden aan de hand van een 'for' loop. De bedoeling is dat de informatie wordt gezet in een tabel genaamd verdeling, in de tabel zit een autoincrement ID zodat gegevens niet overschreden worden. Het probleem is helaas dat de insert query niet werkt. Van het probleem heb ik een screenshot geplaatst op Ik heb de query en waardes ge'echo'ed', ik heb gecontroleerd op het gebruik van grote en kleine letters, ik heb mijn insert query vergeleken met insert queries hier op dit forum, ik heb de waardes in mijn query vergeleken met de namen in de tabel, helaas kan ik de fout niet ontdekken.
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//Insert Query
for ($nr = 0; $nr <= 6; $nr++) {
$volgendeweek2 = strtotime("+$plan[$nr] day", $supertijd);
$volgendeweek = strftime("%Y-%m-%d",$volgendeweek2);
$sql = "Insert INTO verdeling SET
Init = '$init'
Datum = '$volgendeweek'
Beschikbaarheid = '$beschikbaar1[$nr]'
ProcesID = '$processen[$nr]'
Proces_uren = '$procesuren[$nr]'
RollID = '$rol[$nr]'";
echo $sql;
if (@mysql_query($sql)) {
echo '<p>$nr Succesvol toegevoegd</p>';
} else {
echo '<p>Error toevoegen</p>';
}
}
for ($nr = 0; $nr <= 6; $nr++) {
$volgendeweek2 = strtotime("+$plan[$nr] day", $supertijd);
$volgendeweek = strftime("%Y-%m-%d",$volgendeweek2);
$sql = "Insert INTO verdeling SET
Init = '$init'
Datum = '$volgendeweek'
Beschikbaarheid = '$beschikbaar1[$nr]'
ProcesID = '$processen[$nr]'
Proces_uren = '$procesuren[$nr]'
RollID = '$rol[$nr]'";
echo $sql;
if (@mysql_query($sql)) {
echo '<p>$nr Succesvol toegevoegd</p>';
} else {
echo '<p>Error toevoegen</p>';
}
}
Vervang
eens door
Tip: Het rekenen met datums, kun je wellicht handiger door de database laten doen. Die heeft vele handige datum- en tijdfuncties voorhanden, zie hoofdstuk 12.5 van de MySQL-handleiding. Uiteraard gebruik je een DATE of DATETIME om de boel op te slaan.
Blanche schreef op 19.10.2006 14:19:
Laat de mysql_error gewoon weergeven, aan de tekst 'error toevoegen' heb je helemaal niets als je wilt debuggen.
Okee ik heb dat gedaan. Het resultaat is als volgt:
http://home.wanadoo.nl/wjnijhof/temp/3.jpg
In de query lijkt het dus alsof het 'rollid = procesmanager' gedeelte verdwijnt. In plaats daarvan wordt in de query alleen de eerste letter van de waarde 'rollen' getoond ('p' van procesmanager). Hoe kan het dat de query afwijkt van de ge'echo'de query?
Hieronder volgt de gehele code: Let erop dat sommige delen nog versimpeld kunnen worden.
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
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
<?php
session_start();
$beschikbaar1 = $_SESSION['beschikbaar1'];
?>
<html>
<title>verdelingweek</title>
<link REL="stylesheet" href="include/style.css" type="text/css">
Een ogenblik geduld AUB.
<?php
include("sp/dbverbinding.php");
?>
<?php
//alles van het invulformulier wordt naar deze pagina gehaald
extract($_REQUEST);
$processen[0] = $procesma;
$procesuren[0] = $procesurenma;
$rol[0] = $rollenma;
$processen[1] = $procesdi;
$procesuren[1] = $procesurendi;
$rol[1] = $rollendi;
$processen[2] = $proceswo;
$procesuren[2] = $procesurenwo;
$rol[2] = $rollenwo;
$processen[3] = $procesdo;
$procesuren[3] = $procesurendo;
$rol[3] = $rollendo;
$processen[4] = $procesvr;
$procesuren[4] = $procesurenvr;
$rol[4] = $rollenvr;
$processen[5] = $procesza;
$procesuren[5] = $procesurenza;
$rol[5] = $rollenza;
$processen[6] = $proceszo;
$procesuren[6] = $procesurenzo;
$rol[6] = $rollenzo;
//Huidige dag bepalen
$vandaag = strftime("%a",time());
echo "<p>Het is vandaag: $vandaag</p>";
//Timestamp bepalen
$tijd = time();
echo "<p>De huidige timestamp is $tijd</p>";
//Als het maandag is dan wordt het rooster voor over 2 weken gedaan, als het dinsdag t/m zondag is
//dan wordt de dag 'teruggezet' naar maandag en wordt het rooster van dan over 2 weken gedaan
if ($vandaag == 'Mon') {
$supertijd = strtotime("-0 day", $tijd);
}
if ($vandaag == 'Tue') {
$supertijd = strtotime("-1 day", $tijd);
}
if ($vandaag == 'Wed') {
$supertijd = strtotime("-2 day", $tijd);
}
if ($vandaag == 'Thu') {
$supertijd = strtotime("-3 day", $tijd);
}
if ($vandaag == 'Fri') {
$supertijd = strtotime("-4 day", $tijd);
}
if ($vandaag == 'Sat') {
$supertijd = strtotime("-5 day", $tijd);
}
if ($vandaag == 'Sun') {
$supertijd = strtotime("-6 day", $tijd);
}
//timestamp
echo "<p>De timestamp is teruggezet naar $supertijd";
//dag
$dagvannu = strftime("%a", $supertijd);
echo "<p>Dag teruggezet naar $dagvannu</p>";
//Volgendeweek dagen in plan array
$plan = array(7,8,9,10,11,12,13);
//Insert Query
for ($nr = 0; $nr <= 6; $nr++) {
$volgendeweek2 = strtotime("+$plan[$nr] day", $supertijd);
$volgendeweek = strftime("%Y-%m-%d",$volgendeweek2);
$sql = "Insert INTO verdeling SET
Init = '$init'
Datum = '$volgendeweek'
Beschikbaarheid = '$beschikbaar1[$nr]'
ProcesID = '$processen[$nr]'
Proces_uren = '$procesuren[$nr]'
RollID = '$rol[$nr]'";
echo $sql;
if (mysql_query($sql)) {
echo '<p>$nr Succesvol toegevoegd</p>';
} else {
trigger_error(mysql_error());
}
}
?>
session_start();
$beschikbaar1 = $_SESSION['beschikbaar1'];
?>
<html>
<title>verdelingweek</title>
<link REL="stylesheet" href="include/style.css" type="text/css">
Een ogenblik geduld AUB.
<?php
include("sp/dbverbinding.php");
?>
<?php
//alles van het invulformulier wordt naar deze pagina gehaald
extract($_REQUEST);
$processen[0] = $procesma;
$procesuren[0] = $procesurenma;
$rol[0] = $rollenma;
$processen[1] = $procesdi;
$procesuren[1] = $procesurendi;
$rol[1] = $rollendi;
$processen[2] = $proceswo;
$procesuren[2] = $procesurenwo;
$rol[2] = $rollenwo;
$processen[3] = $procesdo;
$procesuren[3] = $procesurendo;
$rol[3] = $rollendo;
$processen[4] = $procesvr;
$procesuren[4] = $procesurenvr;
$rol[4] = $rollenvr;
$processen[5] = $procesza;
$procesuren[5] = $procesurenza;
$rol[5] = $rollenza;
$processen[6] = $proceszo;
$procesuren[6] = $procesurenzo;
$rol[6] = $rollenzo;
//Huidige dag bepalen
$vandaag = strftime("%a",time());
echo "<p>Het is vandaag: $vandaag</p>";
//Timestamp bepalen
$tijd = time();
echo "<p>De huidige timestamp is $tijd</p>";
//Als het maandag is dan wordt het rooster voor over 2 weken gedaan, als het dinsdag t/m zondag is
//dan wordt de dag 'teruggezet' naar maandag en wordt het rooster van dan over 2 weken gedaan
if ($vandaag == 'Mon') {
$supertijd = strtotime("-0 day", $tijd);
}
if ($vandaag == 'Tue') {
$supertijd = strtotime("-1 day", $tijd);
}
if ($vandaag == 'Wed') {
$supertijd = strtotime("-2 day", $tijd);
}
if ($vandaag == 'Thu') {
$supertijd = strtotime("-3 day", $tijd);
}
if ($vandaag == 'Fri') {
$supertijd = strtotime("-4 day", $tijd);
}
if ($vandaag == 'Sat') {
$supertijd = strtotime("-5 day", $tijd);
}
if ($vandaag == 'Sun') {
$supertijd = strtotime("-6 day", $tijd);
}
//timestamp
echo "<p>De timestamp is teruggezet naar $supertijd";
//dag
$dagvannu = strftime("%a", $supertijd);
echo "<p>Dag teruggezet naar $dagvannu</p>";
//Volgendeweek dagen in plan array
$plan = array(7,8,9,10,11,12,13);
//Insert Query
for ($nr = 0; $nr <= 6; $nr++) {
$volgendeweek2 = strtotime("+$plan[$nr] day", $supertijd);
$volgendeweek = strftime("%Y-%m-%d",$volgendeweek2);
$sql = "Insert INTO verdeling SET
Init = '$init'
Datum = '$volgendeweek'
Beschikbaarheid = '$beschikbaar1[$nr]'
ProcesID = '$processen[$nr]'
Proces_uren = '$procesuren[$nr]'
RollID = '$rol[$nr]'";
echo $sql;
if (mysql_query($sql)) {
echo '<p>$nr Succesvol toegevoegd</p>';
} else {
trigger_error(mysql_error());
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Wouter
Dat gedeelte verwijnt niet hoor. Als het goed is kort ie het gewoon wat in. Probeer de query eens te inserten in je phpmyadmin?
Hylke schreef op 19.10.2006 15:50:
Dat gedeelte verwijnt niet hoor. Als het goed is kort ie het gewoon wat in. Probeer de query eens te inserten in je phpmyadmin?
Ah thanks, dat was de truc. Rollid moest RolID zijn.