Update werkt niet
Probleem is dat ik het niet werkend krijg. de fout heb ik na enkele uren nog niet gevonden.
Dit is de case:
van op een overzicht pagina selecteer ik een record (met id) en stuur dit naar mijn update pagina.
op de update pagina worden de juiste gegevens getoond.
na aanpassen van de gegevens druk ik op de submit knop en dan gaat mijn scherm leeg.
het record werd eveneens niet aangepast als ik terug naar de tabellen kijk.
kan iemand mij verder op weg helpen?
alvast bedankt!!
Dit is de 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
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
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
<meta http-equiv="Refresh" content="300">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<?php
// START PHP CODES. THIS PART MUST ON THE TOP OF THIS PAGE.
// Connect database.
include("connect.php");
// ***** This part will process when you Click on "Submit" button *****
// Check, if you clicked "Submit" button
if($_POST['Submit']){
// Get parameters from form.
$id=$_POST['id'];
$Catnr=$_POST['Catnr'];
$geleider=$_POST['geleider'];
$naamhond=$_POST['naamhond'];
$land=$_POST['land'];
$A=$_POST['A'];
$B=$_POST['B'];
$C=$_POST['C'];
$Tot=$_POST['Tot'];
$DK=$_POST['DK'];
$Hurt=$_POST['Hurt'];
// Do update statement.
mysql_query("update Registrations_IPO set A='$A', B='$B', C='$C',Tot='$Tot', DK='$DK' Hurt='$Hurt' where id='$id'");
// Re-direct this page to ipo_voor_update.php.
header("location:ipo_voor_update.php");
exit;
}
// ************* End update part *************
// *** Select data to show on text fields in form. ***
// Get id parameter (GET method) from ipo_voor_update.php
$id=$_GET['id'];
// Get records in all columns from table where column id equal in $id and put it in $result.
$result=mysql_query("select * from Registrations_IPO where id='$id'");
// Split records in $result by table rows and put them in $row.
$row=mysql_fetch_assoc($result);
// Close database connection.
mysql_close();
?>
<!-- END OF PHP CODES AND START HTML TAGS -->
<html>
<body>
<!-- set this form to POST method and target this form to itself ($PHP_SELF;)-->
<form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>">
<p>Catnr.
<!-- name of this text field is "Catnr" -->
<input name="Catnr" type="text" id="Catnr" value="<? echo $row['Catnr']; ?>"/>
<br /><br />
Geleider:
<!-- name of this text field is "geleider" -->
<input name="geleider" type="text" id="geleider" value="<? echo $row['geleider']; ?>"/>
<br /><br />
Naam hond:
<!-- name of this text field is "naamhond" -->
<input name="naamhond" type="text" id="naamhond" value="<? echo $row['naamhond']; ?>"/>
<br /><br />
Land:
<!-- name of this text field is "lad" -->
<input name="land" type="text" id="land" value="<? echo $row['land']; ?>"/>
<br /><br />
A:
<!-- name of this text field is "A" -->
<input name="A" type="text" id="A" value="<? echo $row['A']; ?>"/>
<br /><br />
B:
<!-- name of this text field is "B" -->
<input name="B" type="text" id="B" value="<? echo $row['B']; ?>"/>
<br /><br />
C:
<!-- name of this text field is "C" -->
<input name="C" type="text" id="C" value="<? echo $row['C']; ?>"/>
<br /><br />
Tot:
<!-- name of this text field is "Tot" -->
<input name="Tot" type="text" id="Tot" value="<? echo $row['Tot']; ?>"/>
<br /><br />
DK:
<!-- name of this text field is "DK" -->
<input name="DK" type="text" id="DK" value="<? echo $row['DK']; ?>"/>
<br /><br />
Hurt:
<!-- name of this text field is "Hurt" -->
<input name="Hurt" type="text" id="Hurt" value="<? echo $row['Hurt']; ?>"/>
<br /><br />
<input type="submit" name="Submit" value="Submit" />
<br />
</form>
</body>
</html>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<?php
// START PHP CODES. THIS PART MUST ON THE TOP OF THIS PAGE.
// Connect database.
include("connect.php");
// ***** This part will process when you Click on "Submit" button *****
// Check, if you clicked "Submit" button
if($_POST['Submit']){
// Get parameters from form.
$id=$_POST['id'];
$Catnr=$_POST['Catnr'];
$geleider=$_POST['geleider'];
$naamhond=$_POST['naamhond'];
$land=$_POST['land'];
$A=$_POST['A'];
$B=$_POST['B'];
$C=$_POST['C'];
$Tot=$_POST['Tot'];
$DK=$_POST['DK'];
$Hurt=$_POST['Hurt'];
// Do update statement.
mysql_query("update Registrations_IPO set A='$A', B='$B', C='$C',Tot='$Tot', DK='$DK' Hurt='$Hurt' where id='$id'");
// Re-direct this page to ipo_voor_update.php.
header("location:ipo_voor_update.php");
exit;
}
// ************* End update part *************
// *** Select data to show on text fields in form. ***
// Get id parameter (GET method) from ipo_voor_update.php
$id=$_GET['id'];
// Get records in all columns from table where column id equal in $id and put it in $result.
$result=mysql_query("select * from Registrations_IPO where id='$id'");
// Split records in $result by table rows and put them in $row.
$row=mysql_fetch_assoc($result);
// Close database connection.
mysql_close();
?>
<!-- END OF PHP CODES AND START HTML TAGS -->
<html>
<body>
<!-- set this form to POST method and target this form to itself ($PHP_SELF;)-->
<form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>">
<p>Catnr.
<!-- name of this text field is "Catnr" -->
<input name="Catnr" type="text" id="Catnr" value="<? echo $row['Catnr']; ?>"/>
<br /><br />
Geleider:
<!-- name of this text field is "geleider" -->
<input name="geleider" type="text" id="geleider" value="<? echo $row['geleider']; ?>"/>
<br /><br />
Naam hond:
<!-- name of this text field is "naamhond" -->
<input name="naamhond" type="text" id="naamhond" value="<? echo $row['naamhond']; ?>"/>
<br /><br />
Land:
<!-- name of this text field is "lad" -->
<input name="land" type="text" id="land" value="<? echo $row['land']; ?>"/>
<br /><br />
A:
<!-- name of this text field is "A" -->
<input name="A" type="text" id="A" value="<? echo $row['A']; ?>"/>
<br /><br />
B:
<!-- name of this text field is "B" -->
<input name="B" type="text" id="B" value="<? echo $row['B']; ?>"/>
<br /><br />
C:
<!-- name of this text field is "C" -->
<input name="C" type="text" id="C" value="<? echo $row['C']; ?>"/>
<br /><br />
Tot:
<!-- name of this text field is "Tot" -->
<input name="Tot" type="text" id="Tot" value="<? echo $row['Tot']; ?>"/>
<br /><br />
DK:
<!-- name of this text field is "DK" -->
<input name="DK" type="text" id="DK" value="<? echo $row['DK']; ?>"/>
<br /><br />
Hurt:
<!-- name of this text field is "Hurt" -->
<input name="Hurt" type="text" id="Hurt" value="<? echo $row['Hurt']; ?>"/>
<br /><br />
<input type="submit" name="Submit" value="Submit" />
<br />
</form>
</body>
</html>
Gewijzigd op 28/04/2013 20:40:31 door - Ariën -
Dat komt omdat het id continu uit de lucht moet komen vallen. Het staat nergens in je form en gaat dus niet mee in je post waardes. Het id kan je dus niet uitlezen uit je $_POST array en dus kan je ook geen record updaten. Vervolgens redirect je weer naar de update pagina, maar vergeet je wederom het id mee te geven in de url, zodat als je het form wilt opmaken, het id niet uitgelezen kan worden uit $_GET en je dus een lege resultset uit je database krijgt.
Ik heb echter nog een aanvulling: als ik in een database een veld met de naam 'id' heb, associeer ik dat met een getal (INT, BIGINT, of wat dan ook), en niet met een string. Het kan zijn dat het in dit geval inderdaad een string is (dan vind ik de term 'id' niet handig gekozen), maar als het een getal is, moet je dat in je query niet tussen quotes zetten.
Geert.
Toevoeging op 28/04/2013 12:00:56:
Erwin of Willem, zou het heel veel gevraagd zijn om de aanpassing te doen?
ik geraak er niet direct uit en zou het morgenvroeg al nodig hebben...
de refresh heb ik er al uitgehaald.
Geert.
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
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
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<?php
// START PHP CODES. THIS PART MUST ON THE TOP OF THIS PAGE.
// Connect database.
include("connect.php");
// ***** This part will process when you Click on "Submit" button *****
// Check, if you clicked "Submit" button
if($_POST['Submit']){
// Get parameters from form.
$id=$_POST['id'];
$Catnr=$_POST['Catnr'];
$geleider=$_POST['geleider'];
$naamhond=$_POST['naamhond'];
$land=$_POST['land'];
$A=$_POST['A'];
$B=$_POST['B'];
$C=$_POST['C'];
$Tot=$_POST['Tot'];
$DK=$_POST['DK'];
$Hurt=$_POST['Hurt'];
// Do update statement.
mysql_query("update Registrations_IPO set A='$A', B='$B', C='$C',Tot='$Tot', DK='$DK' Hurt='$Hurt' where id=$id'");
// Re-direct this page to ipo_voor_update.php.
header("location:ipo_voor_update.php");
exit;
}
// ************* End update part *************
// *** Select data to show on text fields in form. ***
// Get id parameter (GET method) from ipo_voor_update.php
$id=$_GET['id'];
// Get records in all columns from table where column id equal in $id and put it in $result.
$result=mysql_query("select * from Registrations_IPO where id='$id'");
// Split records in $result by table rows and put them in $row.
$row=mysql_fetch_assoc($result);
// Close database connection.
mysql_close();
?>
<!-- END OF PHP CODES AND START HTML TAGS -->
<html>
<body>
<!-- set this form to POST method and target this form to itself ($PHP_SELF;)-->
<form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>">
<p>ID:
<!-- name of this text field is "Catnr" -->
<input name="id" type="text" id="id" value="<? echo $row['id']; ?>"/>
<br /><br />
<p>Catnr.
<!-- name of this text field is "Catnr" -->
<input name="Catnr" type="text" id="Catnr" value="<? echo $row['Catnr']; ?>"/>
<br /><br />
Geleider:
<!-- name of this text field is "geleider" -->
<input name="geleider" type="text" id="geleider" value="<? echo $row['geleider']; ?>"/>
<br /><br />
Naam hond:
<!-- name of this text field is "naamhond" -->
<input name="naamhond" type="text" id="naamhond" value="<? echo $row['naamhond']; ?>"/>
<br /><br />
Land:
<!-- name of this text field is "lad" -->
<input name="land" type="text" id="land" value="<? echo $row['land']; ?>"/>
<br /><br />
A:
<!-- name of this text field is "A" -->
<input name="A" type="text" id="A" value="<? echo $row['A']; ?>"/>
<br /><br />
B:
<!-- name of this text field is "B" -->
<input name="B" type="text" id="B" value="<? echo $row['B']; ?>"/>
<br /><br />
C:
<!-- name of this text field is "C" -->
<input name="C" type="text" id="C" value="<? echo $row['C']; ?>"/>
<br /><br />
Tot:
<!-- name of this text field is "Tot" -->
<input name="Tot" type="text" id="Tot" value="<? echo $row['Tot']; ?>"/>
<br /><br />
DK:
<!-- name of this text field is "DK" -->
<input name="DK" type="text" id="DK" value="<? echo $row['DK']; ?>"/>
<br /><br />
Hurt:
<!-- name of this text field is "Hurt" -->
<input name="Hurt" type="text" id="Hurt" value="<? echo $row['Hurt']; ?>"/>
<br /><br />
<input type="submit" name="Submit" value="Submit" />
<br />
</form>
</body>
</html>
<?php
// START PHP CODES. THIS PART MUST ON THE TOP OF THIS PAGE.
// Connect database.
include("connect.php");
// ***** This part will process when you Click on "Submit" button *****
// Check, if you clicked "Submit" button
if($_POST['Submit']){
// Get parameters from form.
$id=$_POST['id'];
$Catnr=$_POST['Catnr'];
$geleider=$_POST['geleider'];
$naamhond=$_POST['naamhond'];
$land=$_POST['land'];
$A=$_POST['A'];
$B=$_POST['B'];
$C=$_POST['C'];
$Tot=$_POST['Tot'];
$DK=$_POST['DK'];
$Hurt=$_POST['Hurt'];
// Do update statement.
mysql_query("update Registrations_IPO set A='$A', B='$B', C='$C',Tot='$Tot', DK='$DK' Hurt='$Hurt' where id=$id'");
// Re-direct this page to ipo_voor_update.php.
header("location:ipo_voor_update.php");
exit;
}
// ************* End update part *************
// *** Select data to show on text fields in form. ***
// Get id parameter (GET method) from ipo_voor_update.php
$id=$_GET['id'];
// Get records in all columns from table where column id equal in $id and put it in $result.
$result=mysql_query("select * from Registrations_IPO where id='$id'");
// Split records in $result by table rows and put them in $row.
$row=mysql_fetch_assoc($result);
// Close database connection.
mysql_close();
?>
<!-- END OF PHP CODES AND START HTML TAGS -->
<html>
<body>
<!-- set this form to POST method and target this form to itself ($PHP_SELF;)-->
<form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>">
<p>ID:
<!-- name of this text field is "Catnr" -->
<input name="id" type="text" id="id" value="<? echo $row['id']; ?>"/>
<br /><br />
<p>Catnr.
<!-- name of this text field is "Catnr" -->
<input name="Catnr" type="text" id="Catnr" value="<? echo $row['Catnr']; ?>"/>
<br /><br />
Geleider:
<!-- name of this text field is "geleider" -->
<input name="geleider" type="text" id="geleider" value="<? echo $row['geleider']; ?>"/>
<br /><br />
Naam hond:
<!-- name of this text field is "naamhond" -->
<input name="naamhond" type="text" id="naamhond" value="<? echo $row['naamhond']; ?>"/>
<br /><br />
Land:
<!-- name of this text field is "lad" -->
<input name="land" type="text" id="land" value="<? echo $row['land']; ?>"/>
<br /><br />
A:
<!-- name of this text field is "A" -->
<input name="A" type="text" id="A" value="<? echo $row['A']; ?>"/>
<br /><br />
B:
<!-- name of this text field is "B" -->
<input name="B" type="text" id="B" value="<? echo $row['B']; ?>"/>
<br /><br />
C:
<!-- name of this text field is "C" -->
<input name="C" type="text" id="C" value="<? echo $row['C']; ?>"/>
<br /><br />
Tot:
<!-- name of this text field is "Tot" -->
<input name="Tot" type="text" id="Tot" value="<? echo $row['Tot']; ?>"/>
<br /><br />
DK:
<!-- name of this text field is "DK" -->
<input name="DK" type="text" id="DK" value="<? echo $row['DK']; ?>"/>
<br /><br />
Hurt:
<!-- name of this text field is "Hurt" -->
<input name="Hurt" type="text" id="Hurt" value="<? echo $row['Hurt']; ?>"/>
<br /><br />
<input type="submit" name="Submit" value="Submit" />
<br />
</form>
</body>
</html>
Bewerkt:
Scripts tussen [code]-tags gezet.
Gewijzigd op 28/04/2013 20:39:47 door - Ariën -
Tweede probleem kan je eenvoudig oplossen door in je redirect het id mee te geven:
Toevoeging op 28/04/2013 12:17:52:
Zie mysql_real_escape_string().
Maar ik geraak er momenteel niet uit, dus zal ik het scriptje verwijderen tot ik de tijd vind om het op de goede manier te doen.
Tenzij er iemand bereid is om me verder te helpen.
Na de aanpassingen werkt het nog niet...
Geert.
Dat quote'je klopt niet. Aangezien je select-query wél lijkt te werken, en daarin $id tussen quotes staat, lijkt het me dat dat bij je update-query ook moet. In ieder geval: óf 2 quotes, óf geen een, maar een oneven aantal quotes geeft garantie op problemen. ;-)
Tip: voeg foutafhandeling toe aan je queries, dan zie je het wat sneller als er iets niet klopt. Je krijgt dan iets als:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$result = mysql_query("update [etc]");
if (!$result)
{
printf ("Query mislukt op regel %d: %s\n", __LINE__, mysql_error());
exit;
}
?>
$result = mysql_query("update [etc]");
if (!$result)
{
printf ("Query mislukt op regel %d: %s\n", __LINE__, mysql_error());
exit;
}
?>
Gewijzigd op 28/04/2013 17:17:11 door Willem vp
Geert.
Toevoeging op 28/04/2013 17:54:31:
Het werkt! toch gedeeltelijk dan.
de update gaat door, maar ik moet de redirect nog veder aanpassen zodat de wijzigingen direct op het scherm komen.