Meerdere velden updaten in 1 query
Ik heb een form gemaakt waarbij ik met een ID de Punten kan aanpassen in mijn database.(en het werkt)
Nu wil ik graag ook in hetzelfde form de honderdtachtig en Gespeeld toevoegen zodat ik ook deze kan aanpassen.
Echter loopt mijn query mis en weet ik niet hoe ik deze precies moet indelen. Misschien dat iemand mij hiermee kan helpen? Wat doe ik fout in mijn query?
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
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
<html>
<head>
<title>Update a Record in MySQL Database</title>
</head>
<body>
<?php
if(isset($_POST['update'])) {
$servername = "";
$username = "";
$password = "";
$conn = mysql_connect($servername, $username, $password, $dbname);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$Id = $_POST['id'];
$Gespeeld = $_POST['gespeeld'];
$Honderdtachtig = $_POST['honderdtachtig'];
$Punten = $_POST['punten'];
$sql = "UPDATE seizoen16 ". "SET Punten = $Punten ". "SET gepeeld = $gespeeld ". "SET honderdtachtig = $hondertachtig ".
"WHERE ID = $Id" ;
mysql_select_db('db_dcmikumdrin');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
mysql_close($conn);
}else {
?>
<form method = "post" action = "<?php $_PHP_SELF ?>">
<table width = "400" border =" 0" cellspacing = "1"
cellpadding = "2">
<tr>
<td width = "100">Id</td>
<td><input name = "id" type = "text"
id = "id"></td>
</tr>
<tr>
<td width = "100">Gespeeld</td>
<td><input name = "gespeeld" type = "text"
id = "gespeeld"></td>
</tr>
<tr>
<td width = "100">180</td>
<td><input name = "honderdtachtig" type = "text"
id = "honderdtachtig"></td>
</tr>
<tr>
<td width = "100">Punten</td>
<td><input name = "punten" type = "text"
id = "punten"></td>
</tr>
<tr>
<td width = "100"> </td>
<td> </td>
</tr>
<tr>
<td width = "100"> </td>
<td>
<input name = "update" type = "submit"
id = "update" value = "Update">
</td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>
<head>
<title>Update a Record in MySQL Database</title>
</head>
<body>
<?php
if(isset($_POST['update'])) {
$servername = "";
$username = "";
$password = "";
$conn = mysql_connect($servername, $username, $password, $dbname);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$Id = $_POST['id'];
$Gespeeld = $_POST['gespeeld'];
$Honderdtachtig = $_POST['honderdtachtig'];
$Punten = $_POST['punten'];
$sql = "UPDATE seizoen16 ". "SET Punten = $Punten ". "SET gepeeld = $gespeeld ". "SET honderdtachtig = $hondertachtig ".
"WHERE ID = $Id" ;
mysql_select_db('db_dcmikumdrin');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
mysql_close($conn);
}else {
?>
<form method = "post" action = "<?php $_PHP_SELF ?>">
<table width = "400" border =" 0" cellspacing = "1"
cellpadding = "2">
<tr>
<td width = "100">Id</td>
<td><input name = "id" type = "text"
id = "id"></td>
</tr>
<tr>
<td width = "100">Gespeeld</td>
<td><input name = "gespeeld" type = "text"
id = "gespeeld"></td>
</tr>
<tr>
<td width = "100">180</td>
<td><input name = "honderdtachtig" type = "text"
id = "honderdtachtig"></td>
</tr>
<tr>
<td width = "100">Punten</td>
<td><input name = "punten" type = "text"
id = "punten"></td>
</tr>
<tr>
<td width = "100"> </td>
<td> </td>
</tr>
<tr>
<td width = "100"> </td>
<td>
<input name = "update" type = "submit"
id = "update" value = "Update">
</td>
</tr>
</table>
</form>
<?php
}
?>
</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 18/11/2016 12:08:43 door - Ariën -
Verder is het niet SET ... = ... SET ... = ... maar SET ...=... ,(komma) ...=...
Ik heb de query aangepast maar krijg nog steeds een foutmelding:
$sql = "UPDATE seizoen16 ". "SET Punten = $Punten, gepeeld = $gespeeld, honderdtachtig = $honderdtachtig ".
"WHERE ID = $Id" ;
foutmelding:
Could not update data: 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 ' honderdtachtig = WHERE ID = 1' at line 1
Gewijzigd op 18/11/2016 11:54:57 door Jeroen Nick
Als $gespeeld leeg is (lege string, null, false) dan staat er na "gepeeld = " direct een komma en geen waarde.
toevoegen van '' help dan.
Code (php)
1
2
3
4
2
3
4
<?php
$sql = "UPDATE seizoen16 ". "SET Punten = '$Punten', gepeeld = '$gespeeld', honderdtachtig = '$honderdtachtig' ".
"WHERE ID = '$Id'" ;
?>
$sql = "UPDATE seizoen16 ". "SET Punten = '$Punten', gepeeld = '$gespeeld', honderdtachtig = '$honderdtachtig' ".
"WHERE ID = '$Id'" ;
?>
Maar dan zou ik ook naar escapen van de invoer kijken
of het gebruik van prepared statements.
Code (php)
1
2
3
2
3
<?
$sql = "UPDATE seizoen16 SET `Punten` = '".$Punten."', `gepeeld` = '".$gespeeld."', `honderdtachtig` = '".$honderdtachtig."' WHERE `ID` = '".$Id."'";
?>
$sql = "UPDATE seizoen16 SET `Punten` = '".$Punten."', `gepeeld` = '".$gespeeld."', `honderdtachtig` = '".$honderdtachtig."' WHERE `ID` = '".$Id."'";
?>
edit: inderdaad zo'n beetje wat Ivo ook zei :)
Gewijzigd op 18/11/2016 12:00:51 door Sander van t Hullenaar
Je kan het beste de functies van mysqli_* of PDO gebruiken.
Lijn 40 is loos, naast dat $PHP_SELF al vele ajren niet meer bestaat, doe je ook nog eens niks met die variabele. Dat hele PHP-blokje kan er gewoon uit, want een lege action-attribuut roept gewoon de huidige pagina aan.
Gewijzigd op 18/11/2016 12:11:02 door - Ariën -
Hierbij de code voor het updaten van alle velden:
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
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
<?php
if(isset($_POST['update'])) {
$servername = "-";
$username = "";
$password = "-";
$conn = mysql_connect($servername, $username, $password, $dbname);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$Id = $_POST['id'];
$Gespeeld = $_POST['gespeeld'];
$Honderdtachtig = $_POST['honderdtachtig'];
$Punten = $_POST['punten'];
$sql = "UPDATE seizoen16 SET Gespeeld='$Gespeeld', honderdtachtig='$Honderdtachtig', Punten='$Punten'
WHERE id='$Id'" ;
mysql_select_db('db_dcmikumdrin');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
mysql_close($conn);
}else {
?>
<form method = "post" action = "<?php $_PHP_SELF ?>">
<table width = "400" border =" 0" cellspacing = "1"
cellpadding = "2">
<tr>
<td width = "100">Id</td>
<td><input name = "id" type = "text"
id = "id"></td>
<td width = "100">Speler</td>
<td><input name = "gespeeld" type = "text"
id = "gespeeld"></td>
<td width = "100">Gespeeld</td>
<td><input name = "gespeeld" type = "text"
id = "gespeeld"></td>
<td width = "100">180</td>
<td><input name = "honderdtachtig" type = "text"
id = "honderdtachtig"></td>
<td width = "100">Punten</td>
<td><input name = "punten" type = "text"
id = "punten"></td>
</tr>
<tr>
<td width = "100"> </td>
<td> </td>
</tr>
<tr>
<td width = "100"> </td>
<td>
<input name = "update" type = "submit"
id = "update" value = "Update">
</td>
</tr>
</table>
</form>
<?php
}
?>
if(isset($_POST['update'])) {
$servername = "-";
$username = "";
$password = "-";
$conn = mysql_connect($servername, $username, $password, $dbname);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$Id = $_POST['id'];
$Gespeeld = $_POST['gespeeld'];
$Honderdtachtig = $_POST['honderdtachtig'];
$Punten = $_POST['punten'];
$sql = "UPDATE seizoen16 SET Gespeeld='$Gespeeld', honderdtachtig='$Honderdtachtig', Punten='$Punten'
WHERE id='$Id'" ;
mysql_select_db('db_dcmikumdrin');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
mysql_close($conn);
}else {
?>
<form method = "post" action = "<?php $_PHP_SELF ?>">
<table width = "400" border =" 0" cellspacing = "1"
cellpadding = "2">
<tr>
<td width = "100">Id</td>
<td><input name = "id" type = "text"
id = "id"></td>
<td width = "100">Speler</td>
<td><input name = "gespeeld" type = "text"
id = "gespeeld"></td>
<td width = "100">Gespeeld</td>
<td><input name = "gespeeld" type = "text"
id = "gespeeld"></td>
<td width = "100">180</td>
<td><input name = "honderdtachtig" type = "text"
id = "honderdtachtig"></td>
<td width = "100">Punten</td>
<td><input name = "punten" type = "text"
id = "punten"></td>
</tr>
<tr>
<td width = "100"> </td>
<td> </td>
</tr>
<tr>
<td width = "100"> </td>
<td>
<input name = "update" type = "submit"
id = "update" value = "Update">
</td>
</tr>
</table>
</form>
<?php
}
?>
Het volgende wat ik wil doen is ervoor zorgen dat in de invulvelden al de gegevens staan die in de database staan.
Het is mij eerder gelukt om deze op te vragen in het input veld met deze 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
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
<?php
$servername = "www.dcmikumdrin.nl";
$username = "-";
$password = "-";
$dbname = "-";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT Speler, Gespeeld, honderdtachtig, Punten FROM seizoen16 ORDER BY punten DESC";
$result = $conn->query($sql);
echo "<h1>Update</h1><form action='insert.php' method='post' name='insertform'>";
$i = 1;
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo
"<table><tr><td>Speler:<input type='text' name='Speler' value='" . $row['Speler'] . "'></td>".
"<td><input type='submit' value='Submit'></td></tr></table>";
}
echo "<input type='submit' name='send' value='Submit'><br class='clear:both'>";
} else {
echo "0 results";
}
$conn->close();
?>
$servername = "www.dcmikumdrin.nl";
$username = "-";
$password = "-";
$dbname = "-";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT Speler, Gespeeld, honderdtachtig, Punten FROM seizoen16 ORDER BY punten DESC";
$result = $conn->query($sql);
echo "<h1>Update</h1><form action='insert.php' method='post' name='insertform'>";
$i = 1;
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo
"<table><tr><td>Speler:<input type='text' name='Speler' value='" . $row['Speler'] . "'></td>".
"<td><input type='submit' value='Submit'></td></tr></table>";
}
echo "<input type='submit' name='send' value='Submit'><br class='clear:both'>";
} else {
echo "0 results";
}
$conn->close();
?>
Iemand een idee hoe ik het moet aanpakken zodat ik in de eerste code, alles huidige waardes te zien krijg in de inputvelden?
Alvast bedankt!
Toevoeging op 18/11/2016 12:27:28:
Sander van t Hullenaar op 18/11/2016 12:00:14:
Dat was inderdaad de oplossing :)
- 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 18/11/2016 12:33:13 door - Ariën -