SQL gegevens updaten
Kan iemand mij uitleggen waarom dit stukje script niet doet wat ik verwacht, nl. een stukje tekst ($cont) updaten naar mijn SQL databse user? Maak ik een denkfout in de volgorde misschien?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
if($action=="leerling1t") {
echo "<form action=\"?action=eleerling1t\" method=\"post\">";
$sql = "SELECT * FROM users WHERE rang = $rang ORDER BY groep,voornaam LIMIT 0,1"; // haalt persoon uit database
$res = mysql_query($sql) or die(mysql_error());
$show = mysql_fetch_array($res);
echo ucwords($show['voornaam']);
echo "<textarea name=\"cont\" cols=\"100\" rows=\"24\">";
echo $show['portfolio'];
echo "</textarea><br>
<input type=\"submit\" name=\"Submit\" value=\"Alles opslaan\"></center></form>";
}
if($action=="eleerling1t") {
$update = "UPDATE users SET portfolio = '".$_POST['cont']."' WHERE id='".$_GET['id']."' "; mysql_query($update) or die(mysql_error());
}
?>
if($action=="leerling1t") {
echo "<form action=\"?action=eleerling1t\" method=\"post\">";
$sql = "SELECT * FROM users WHERE rang = $rang ORDER BY groep,voornaam LIMIT 0,1"; // haalt persoon uit database
$res = mysql_query($sql) or die(mysql_error());
$show = mysql_fetch_array($res);
echo ucwords($show['voornaam']);
echo "<textarea name=\"cont\" cols=\"100\" rows=\"24\">";
echo $show['portfolio'];
echo "</textarea><br>
<input type=\"submit\" name=\"Submit\" value=\"Alles opslaan\"></center></form>";
}
if($action=="eleerling1t") {
$update = "UPDATE users SET portfolio = '".$_POST['cont']."' WHERE id='".$_GET['id']."' "; mysql_query($update) or die(mysql_error());
}
?>
Gewijzigd op 01/01/1970 01:00:00 door H. Fokker
Ik kreeg nog geen reactie, mag het nog een keer onder jullie aandacht? Ergens doe ik iets fot in dit stukje script maar waar? Er wordt op een of andere manier geen update uitgevoerd met de inhoud van de textarea naar mijn database ...
Maare, voordat ik naar jou code ga kijken moet je hem toch eerst eens wat gestructueerder (duidelijker) maken, want dit is gewoon een blok opeengepropte code waar je voor geleerd moet hebben om te ontcijferen zowat.
oftewel, gebruik wat meer je entertoets, en spring eens in.
Gewijzigd op 01/01/1970 01:00:00 door Stefan van Iwaarden
Je hebt helemaal gelijk! Ik heb alle overbodige woorden eruit gehaald en dit blijft over.
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
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
<?php
if($action=="leerling1t") {
echo "<form action=\"?action=eleerling1t\" method=\"post\">";
$sql = "SELECT *
FROM users
WHERE
rang = '".$rang."'
ORDER BY
groep,voornaam
LIMIT 0,1"; // haalt persoon uit database
$res = mysql_query($sql) or die(mysql_error());
$show = mysql_fetch_array($res);
echo ucwords($show['voornaam']);
echo "<textarea name=\"cont\" cols=\"100\" rows=\"24\">";
echo $show['portfolio'];
echo "</textarea><br>
<input type=\"submit\" name=\"Submit\" value=\"Alles opslaan\"></center></form>";
}
if($action=="eleerling1t") {
$update = "UPDATE
users
SET
portfolio = '".$_POST['cont']."'
WHERE id=".$_GET['id'];
mysql_query($update) or die(mysql_error());
}
?>
if($action=="leerling1t") {
echo "<form action=\"?action=eleerling1t\" method=\"post\">";
$sql = "SELECT *
FROM users
WHERE
rang = '".$rang."'
ORDER BY
groep,voornaam
LIMIT 0,1"; // haalt persoon uit database
$res = mysql_query($sql) or die(mysql_error());
$show = mysql_fetch_array($res);
echo ucwords($show['voornaam']);
echo "<textarea name=\"cont\" cols=\"100\" rows=\"24\">";
echo $show['portfolio'];
echo "</textarea><br>
<input type=\"submit\" name=\"Submit\" value=\"Alles opslaan\"></center></form>";
}
if($action=="eleerling1t") {
$update = "UPDATE
users
SET
portfolio = '".$_POST['cont']."'
WHERE id=".$_GET['id'];
mysql_query($update) or die(mysql_error());
}
?>
maar ik kan zogauw niets fouts ontdekken in je update query. ik denk dat je moet gaan kijken naar het deel dat ervoor zorgt dat $cont zijn waarde toekent.
Bedankt! Het werkt nog niet maar ik ga er zeker eens goed naar kijken. Je zet me weer hiermee weer op een spoor.
Ik zit inmiddels op dit stukje script, maar een update van gegevens gebeurt nog steeds niet. Wat kan er nou aan de hand zijn? Het script lijkt kloppend, geeft geen error maar er wordt niets naar SQL gezet.
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
<?
if($action=="leerling") {
if ($_GET['bevestig'] == 'ja') {
$cont = $_POST['cont'];
$update = " UPDATE users
SET portfolio = $cont
WHERE id='".$_GET['id']."'
";
mysql_query($update) or die(mysql_error());
}
else {
$sql = " SELECT *
FROM users
WHERE rang = $rang
ORDER BY groep,voornaam
LIMIT 0,1
";
$resultaat = mysql_query($sql) or die(mysql_error());
$show = mysql_fetch_array($resultaat);
echo "<form action=\"?leerlingadmin.php&action=leerling&bevestig=ja\" method=\"post\">
<input type=\"hidden\" name=\"id\" value=\"".$_GET['id']."\">
<center>Maak de tekst aan van <b>";
echo ucwords($show['voornaam']);
echo "</b></center><br><center><textarea name=\"cont\" cols=\"100\" rows=\"24\">";
echo $show['portfolio'];
echo "</textarea></center><br>
<center><input type=\"submit\" name=\"Submit\" value=\"Alles opslaan\"></center></form>";
}
}
?>
if($action=="leerling") {
if ($_GET['bevestig'] == 'ja') {
$cont = $_POST['cont'];
$update = " UPDATE users
SET portfolio = $cont
WHERE id='".$_GET['id']."'
";
mysql_query($update) or die(mysql_error());
}
else {
$sql = " SELECT *
FROM users
WHERE rang = $rang
ORDER BY groep,voornaam
LIMIT 0,1
";
$resultaat = mysql_query($sql) or die(mysql_error());
$show = mysql_fetch_array($resultaat);
echo "<form action=\"?leerlingadmin.php&action=leerling&bevestig=ja\" method=\"post\">
<input type=\"hidden\" name=\"id\" value=\"".$_GET['id']."\">
<center>Maak de tekst aan van <b>";
echo ucwords($show['voornaam']);
echo "</b></center><br><center><textarea name=\"cont\" cols=\"100\" rows=\"24\">";
echo $show['portfolio'];
echo "</textarea></center><br>
<center><input type=\"submit\" name=\"Submit\" value=\"Alles opslaan\"></center></form>";
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door H. Fokker
if($action=="leerling") {
maar op regel 28 staat:
action=leerling1t
aangezien de update in je eerste if zit, wordt hij niet uitgevoerd.
Dank je wel voor reageren. Ik heb bij het overzetten naar phphulp deze fout gemaakt omdat ik overbodige code weg wilde halen. Maar los daarvan werkt het ook niet als beiden gelijk zijn.
Kan het ook aan de SQL kant liggen? De kolom portfolio is type text.
Het script is nu:
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
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
<?
if (isset($_GET['action']) && $_GET['action'] == 'leerling1t') {
if ($_GET['bevestig'] == 'ja') {
$cont = $_POST['cont'];
$update = " UPDATE users
SET portfolio = '$cont'
WHERE id='".$_GET['id']."'
";
mysql_query($update) or die(mysql_error());
echo "<table width=\"99%\" border=\"1\" cellpadding=\"4\" cellspacing=\"0\" bgcolor=\"#FFCC00\" bordercolor=\"#7F9DB9\">
<tr><td><font face=\"Verdana\" size=\"2\" style=\"color:#D3180B\"><center>De tekst wordt gewijzigd, een ogenblikje ...</center></font></td></tr></table>
<br><br><META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=leerlingadmin.php\">";
}
else {
$sql = " SELECT *
FROM users
WHERE rang = $rang
ORDER BY groep,voornaam
LIMIT 0,1
";
$resultaat = mysql_query($sql) or die(mysql_error());
$show = mysql_fetch_array($resultaat);
echo "<form action=\"?leerlingadmin.php&action=leerling1t&bevestig=ja\" method=\"post\">
<input type=\"hidden\" name=\"id\" value=\"".$_GET['id']."\">
<table width=\"99%\" border=\"1\" cellpadding=\"4\" cellspacing=\"0\" bgcolor=\"#FFCC00\" bordercolor=\"#7F9DB9\">
<tr><td><font face=\"Verdana\" size=\"2\" style=\"color:#D3180B\"><center><center>Maak de tekst aan van <b>";
echo ucwords($show['voornaam']);
echo "</b></center></font></td></tr></table><br><center><textarea name=\"cont\" cols=\"100\" rows=\"24\">";
echo $show['portfolio'];
echo "</textarea></center><br>
<center><input type=\"submit\" name=\"Submit\" value=\"Alles opslaan\"></center></form>";
}
}
?>
if (isset($_GET['action']) && $_GET['action'] == 'leerling1t') {
if ($_GET['bevestig'] == 'ja') {
$cont = $_POST['cont'];
$update = " UPDATE users
SET portfolio = '$cont'
WHERE id='".$_GET['id']."'
";
mysql_query($update) or die(mysql_error());
echo "<table width=\"99%\" border=\"1\" cellpadding=\"4\" cellspacing=\"0\" bgcolor=\"#FFCC00\" bordercolor=\"#7F9DB9\">
<tr><td><font face=\"Verdana\" size=\"2\" style=\"color:#D3180B\"><center>De tekst wordt gewijzigd, een ogenblikje ...</center></font></td></tr></table>
<br><br><META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=leerlingadmin.php\">";
}
else {
$sql = " SELECT *
FROM users
WHERE rang = $rang
ORDER BY groep,voornaam
LIMIT 0,1
";
$resultaat = mysql_query($sql) or die(mysql_error());
$show = mysql_fetch_array($resultaat);
echo "<form action=\"?leerlingadmin.php&action=leerling1t&bevestig=ja\" method=\"post\">
<input type=\"hidden\" name=\"id\" value=\"".$_GET['id']."\">
<table width=\"99%\" border=\"1\" cellpadding=\"4\" cellspacing=\"0\" bgcolor=\"#FFCC00\" bordercolor=\"#7F9DB9\">
<tr><td><font face=\"Verdana\" size=\"2\" style=\"color:#D3180B\"><center><center>Maak de tekst aan van <b>";
echo ucwords($show['voornaam']);
echo "</b></center></font></td></tr></table><br><center><textarea name=\"cont\" cols=\"100\" rows=\"24\">";
echo $show['portfolio'];
echo "</textarea></center><br>
<center><input type=\"submit\" name=\"Submit\" value=\"Alles opslaan\"></center></form>";
}
}
?>
error_reporting(E_ALL);
eens bovenin je script zetten.
En waar komt $_GET['id'] vandaan?