Hallo forumleden,

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?

<?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());
}
?>

Hallo mensen,
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 ...
bumpen mag pas na 24 uur officieel.

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.
Je hebt helemaal gelijk! Ik heb alle overbodige woorden eruit gehaald en dit blijft over.
dit is al iets beter:
<?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());
}
?> 


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.
Beste mensen,

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.

<?
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&amp;action=leerling&amp;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>";
}
}
?>
Je stelt deze voorwaarde op regel 2:
if($action=="leerling") {

maar op regel 28 staat:
action=leerling1t

aangezien de update in je eerste if zit, wordt hij niet uitgevoerd.
Hallo Jan,

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.
Het is wel een $_GET variabele, dus zo zal ie ook opgehaald moeten worden

<?php
if(isset($_GET['action']) && $_GET['action'] == 'leerling1t')
?>
Sorry, helaas .. er wordt nog steeds niets geupdate.
Kan het ook aan de SQL kant liggen? De kolom portfolio is type text.

Het script is nu:

<?
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&amp;action=leerling1t&amp;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>";
}
}
?>

Reageren