Probleem met update middels een form
Grotendeels werkt het.
Maar ik krijg de volgende mededelingen:
Notice: Use of undefined constant QUERY_STRING - assumed 'QUERY_STRING' in C:\xampp\htdocs\veranderv6.php on line 34
en
Notice: Undefined variable: update in C:\xampp\htdocs\veranderv6.php on line 61
...
Updaten lukt dus (nog) niet.
Wat moet ik waar (nog) aanpassen?
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
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
<?php
$hostname = "localhost";
$dbname = "tour";
$username = "**knip**";
$password = "**knip**";
$conn = new MySQLi($hostname, $username, $password, $dbname) or die('Can not connect to database')
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Updaten van data</title>
</head>
<body>
<?php
if(isset($_POST['Submit'])){
$tijdverschil2 = $_POST['verschil2'];
$afbwaarde = $_POST['afbeeldingwrd'];
$tijdverschil1 = $_POST['verschil1'];
$update = "UPDATE radio SET Tijd2='$tijdverschil2', Plaatje='$afbwaarde', Tijd1='$tijdverschil1' WHERE radio_id=0";
$conn->query($update) or die("Kan niet updaten");//update or error
}
?>
<?php
$sql = "SELECT * FROM radio WHERE radio_id=0";
$result = $conn->query($sql) or die(mysql_error());
$query=getenv(QUERY_STRING);
parse_str($query);
?>
<form action="" method="post">
<?php
while ($row = $result->fetch_assoc()) {?>
<table border="0" cellspacing="10">
<tr>
<td>Afbeeldingnummer:</td> <td><input type="text" name="afbeeldingwrd" value="<?php echo $row['afbwaarde']; ?>"></td>
</tr>
<tr>
<td>Tijdverschil 1:</td> <td><input type="text" name="verschil1" value="<?php echo $row['tijdverschil1']; ?>"></td>
</tr>
<tr>
<td>Tijdverschil 2:</td> <td><input type="text" name="verschil2" value="<?php echo $row['tijdverschil2']; ?>"></td>
</tr>
<tr>
<td><INPUT TYPE="Submit" VALUE="Updaten !" NAME="Submit"></td>
</tr>
</table>
<?php }
?>
</form>
<?php
if($update){
echo "<b>Update geslaagd!</b>";
}
?>
</body>
</html>
$hostname = "localhost";
$dbname = "tour";
$username = "**knip**";
$password = "**knip**";
$conn = new MySQLi($hostname, $username, $password, $dbname) or die('Can not connect to database')
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Updaten van data</title>
</head>
<body>
<?php
if(isset($_POST['Submit'])){
$tijdverschil2 = $_POST['verschil2'];
$afbwaarde = $_POST['afbeeldingwrd'];
$tijdverschil1 = $_POST['verschil1'];
$update = "UPDATE radio SET Tijd2='$tijdverschil2', Plaatje='$afbwaarde', Tijd1='$tijdverschil1' WHERE radio_id=0";
$conn->query($update) or die("Kan niet updaten");//update or error
}
?>
<?php
$sql = "SELECT * FROM radio WHERE radio_id=0";
$result = $conn->query($sql) or die(mysql_error());
$query=getenv(QUERY_STRING);
parse_str($query);
?>
<form action="" method="post">
<?php
while ($row = $result->fetch_assoc()) {?>
<table border="0" cellspacing="10">
<tr>
<td>Afbeeldingnummer:</td> <td><input type="text" name="afbeeldingwrd" value="<?php echo $row['afbwaarde']; ?>"></td>
</tr>
<tr>
<td>Tijdverschil 1:</td> <td><input type="text" name="verschil1" value="<?php echo $row['tijdverschil1']; ?>"></td>
</tr>
<tr>
<td>Tijdverschil 2:</td> <td><input type="text" name="verschil2" value="<?php echo $row['tijdverschil2']; ?>"></td>
</tr>
<tr>
<td><INPUT TYPE="Submit" VALUE="Updaten !" NAME="Submit"></td>
</tr>
</table>
<?php }
?>
</form>
<?php
if($update){
echo "<b>Update geslaagd!</b>";
}
?>
</body>
</html>
- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 21/06/2016 17:49:50 door - Ariën -
Over je tweede melding, komt het erop neer dat $update niet bestaat. Maar hier gaat nog meer mis, want je kijkt nu naar de querystring die je aan je query doorgeeft. Dus een controle met $result is wel zinniger.
Gaat goed.
Line 60 tot 68 eruit gehaald.
Nu krijg ik de mededeling "Kan niet updaten"....
Waardes worden niet overgenomen.
:-(
Verder is die() ook niet echt de juiste manier van foutrafhandeling. Je script hoort niet dood te gaan als er iets fout gaat. Het dient gewoon netjes afgesloten te worden.
Met Php ben ik nog een echte leek.
please?
Gewijzigd op 21/06/2016 18:50:12 door - Ariën -
en tweede vraag...
waarom worden de waardes niet ge-update?
Regel 27 en 28:
Code (php)
1
2
3
4
2
3
4
<?php
$update = "UPDATE radio SET Tijd2='".$tijdverschil2."', Plaatje='".$afbwaarde."', Tijd1='".$tijdverschil1."' WHERE radio_id = 0";
$conn->query($update) or die("Fout opgetreden: ".$conn->error);
?>
$update = "UPDATE radio SET Tijd2='".$tijdverschil2."', Plaatje='".$afbwaarde."', Tijd1='".$tijdverschil1."' WHERE radio_id = 0";
$conn->query($update) or die("Fout opgetreden: ".$conn->error);
?>
Regel 33
regel 34 en 35
Volgens mij hebben we dan alles gehad denk..
Fout opgetreden: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '00', Plaatje='1', Tijd1='2'00' WHERE radio_id = 0' at line 1
In mijn database heten mijn velden niet plaatje,tijd1 en tijd2, maar afbwaarde, tijdverschil1 en tijdverschil2.
Wellicht dat ik in regel 27 daar een fout heb gemaakt.
Ik wist niet hoe ik dat moe(s)t invullen.
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
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
<?php
$hostname = "localhost";
$dbname = "tour";
$username = "prince";
$password = "tafkap";
$conn = new MySQLi($hostname, $username, $password, $dbname) or die('Can not connect to database')
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Updaten van data</title>
</head>
<body>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$tijdverschil2 = $_POST['verschil2'];
$afbwaarde = $_POST['afbeeldingwrd'];
$tijdverschil1 = $_POST['verschil1'];
$update = "UPDATE radio SET Tijd2='".$tijdverschil2."', Plaatje='".$afbwaarde."', Tijd1='".$tijdverschil1."' WHERE radio_id = 0";
$conn->query($update) or die("Fout opgetreden: ".$conn->error);
}
?>
<?php
$sql = "SELECT * FROM radio WHERE radio_id=0";
$result = $conn->query($sql) or die(mysql_error());
$query=getenv("QUERY_STRING");
parse_str($query);
?>
<form action="" method="post">
<?php
while ($row = $result->fetch_assoc()) {?>
<table border="0" cellspacing="10">
<tr>
<td>Afbeeldingnummer:</td> <td><input type="text" name="afbeeldingwrd" value="<?php echo $row['afbwaarde']; ?>"></td>
</tr>
<tr>
<td>Tijdverschil 1:</td> <td><input type="text" name="verschil1" value="<?php echo $row['tijdverschil1']; ?>"></td>
</tr>
<tr>
<td>Tijdverschil 2:</td> <td><input type="text" name="verschil2" value="<?php echo $row['tijdverschil2']; ?>"></td>
</tr>
<tr>
<td><INPUT TYPE="Submit" VALUE="Updaten !" NAME="Submit"></td>
</tr>
</table>
<?php }
?>
</form>
</body>
</html>
$hostname = "localhost";
$dbname = "tour";
$username = "prince";
$password = "tafkap";
$conn = new MySQLi($hostname, $username, $password, $dbname) or die('Can not connect to database')
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Updaten van data</title>
</head>
<body>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$tijdverschil2 = $_POST['verschil2'];
$afbwaarde = $_POST['afbeeldingwrd'];
$tijdverschil1 = $_POST['verschil1'];
$update = "UPDATE radio SET Tijd2='".$tijdverschil2."', Plaatje='".$afbwaarde."', Tijd1='".$tijdverschil1."' WHERE radio_id = 0";
$conn->query($update) or die("Fout opgetreden: ".$conn->error);
}
?>
<?php
$sql = "SELECT * FROM radio WHERE radio_id=0";
$result = $conn->query($sql) or die(mysql_error());
$query=getenv("QUERY_STRING");
parse_str($query);
?>
<form action="" method="post">
<?php
while ($row = $result->fetch_assoc()) {?>
<table border="0" cellspacing="10">
<tr>
<td>Afbeeldingnummer:</td> <td><input type="text" name="afbeeldingwrd" value="<?php echo $row['afbwaarde']; ?>"></td>
</tr>
<tr>
<td>Tijdverschil 1:</td> <td><input type="text" name="verschil1" value="<?php echo $row['tijdverschil1']; ?>"></td>
</tr>
<tr>
<td>Tijdverschil 2:</td> <td><input type="text" name="verschil2" value="<?php echo $row['tijdverschil2']; ?>"></td>
</tr>
<tr>
<td><INPUT TYPE="Submit" VALUE="Updaten !" NAME="Submit"></td>
</tr>
</table>
<?php }
?>
</form>
</body>
</html>
Gewijzigd op 21/06/2016 21:32:52 door Michiel Krijger
En hoe ziet je database structuur eruit qua tabellen en velden?
Gewijzigd op 21/06/2016 21:48:00 door - Ariën -
Code (php)
1
2
3
2
3
<?php
$update = "UPDATE radio SET Tijd2='".$conn->escape_string($tijdverschil2)."', Plaatje='".$conn->escape_string($afbwaarde)."', Tijd1='".$conn->escape_string($tijdverschil1)."' WHERE radio_id = 0";
?>
$update = "UPDATE radio SET Tijd2='".$conn->escape_string($tijdverschil2)."', Plaatje='".$conn->escape_string($afbwaarde)."', Tijd1='".$conn->escape_string($tijdverschil1)."' WHERE radio_id = 0";
?>
Gewijzigd op 21/06/2016 21:50:09 door Ben van Velzen
... wat anders een groot veiligheidsrisico is, als je niet 'escaped'. Lees je maar eens in SQL Injection.
Hoe post je hier een afbeelding?
escaped?...php is vrij nieuw voor me.
Gewijzigd op 21/06/2016 21:57:25 door Michiel Krijger
Wat is er mis met een SQL structuurdump?
Kolom Type Leeg Standaardwaarde Verwijst naar Opmerkingen
radio_id (Primaire sleutel) int(11) Nee
afbwaarde int(11) Nee
tijdverschil1 varchar(5) Nee
tijdverschil2 varchar(5) Nee
Indexen
Sleutelnaam Type Unieke waarde Gecomprimeerd Kolom Kardinaliteit Collatie Leeg Opmerking
PRIMARY BTREE Ja Nee radio_id 1 A Nee
Ik zie nu al dat het een vreemde structuur is die je hebt, waarschijnlijk ook gemaakt zonder hinder van enige kennis.
Waarom lees je je niet gewoon eerst eens in hoe dingen werken zonder dingen lukraak te proberen?
Volg eens een tutorial over databases, dan leer je meteen wat SQL injection is en wat je daartegen moet doen.
Gewijzigd op 21/06/2016 22:07:38 door Ben van Velzen
Wat meldt de code met die echo (zie 21:47 uur)?
SQL: UPDATE Radio SET tijdverschil2='4'00', afbwaarde='2', tijdverschil1='2'00' WHERE radio_id = 0Fout opgetreden: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '00', afbwaarde='2', tijdverschil1='2'00' WHERE radio_id = 0' at line 1
@ Ben van Velzen:
Heb de database en tabel aan de hand van een aantal tutorials en boeken gemaakt.
Klopt dat ik geen expert ben.
Wel raad ik en goede tutorial aan zoals op http://www.phptuts.nl
En dan eerst de tutorial PHP, en dan over SQL en MySQLi.
Hartelijk dank en ja ik zal zeker nog met tutorials aan de gang gaan.
Bedankt voor de tips.