Ik ben bezig met een bewerk functie maar krijg hem niet werkende. Als de bewerk pagina open krijg ik gewoon netjes de informatie van de juiste gebruiker. Ik heb ook mooi invulveld waar ik het in kan veranderen, en als ik dan vervolgens op submit druk is er neits veranderd... Ik krijg ook geen foutmelding. iemand die me kan/wilt helpen

<?php
include("db.php");
error_reporting(E_ALL);

if(!isset($_GET['id']))


?>
<html>
<head>
<?php

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$id = $_POST[id];
$v_naam = $_POST[voornaam];


include"db.php";
mysql_query("UPDATE gebruiker SET v_naam = '".$_POST['voornaam']."'") or die(mysql_error());


echo"<p align='center'><db>gebruiker bijgewerkt</p>";
}
else
{
?>


<title></title>
</head>
<body>

<form name="bewerk" method="POST" action="index.php?top=top_menu/top_systeembeheer&pagina=systeembeheer/gebruiker">

<?php
$algemeen = mysql_query
("SELECT * FROM gebruiker, geb_functie WHERE id='".$_GET['id']."' AND gebruiker.bevoegd = geb_functie.nr");
if($a = mysql_fetch_assoc($algemeen))
{
?>

<table>
<tr>
<td>Voornaam</td>
<td><input type="text" name="voornaam" value="<?php echo $a['v_naam']; ?>"></td>
</tr>

</table>
<input type="submit" value="submit" name="submit">

<?php
}
}
?>
Bij een UPDATE moet je wel altijd een id van het betreffende record mee sturen, anders word je hele tabel geupdate en dat wil je niet lijkt me...

bouw je query op deze manier op:
$query = "UPDATE ... ";
$result = mysql_query($query);
if(!$result) echo mysql_error();
Daarnaast is het wel zo handig om even te checken hoeveel records er zijn bijgewerkt. Dat de query is gelukt, zegt namelijk niet wat de resultaten zijn. De query zal namelijk ook lukken wanneer er helemaal geen records zijn die aan de voorwaarden voldoen. mysql_affected_rows() is je beste vriend.
Zo moet hij het id toch uit mijn link halen?? Want hij geeft wel de naam goed weer

<?php
include("db.php");
error_reporting(E_ALL);

if(!isset($_GET['id']))


if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$v_naam = $_POST[voornaam];


include"db.php";
mysql_query("UPDATE gebruiker SET v_naam = '".$_POST['voornaam']."' WHERE id = '$id'") or die(mysql_error());


echo"<p align='center'><db>gebruiker bijgewerkt</p>";
}
else
{
?>
<? if(!isset($_GET['id'])) ?>
Als $_GET['id'] niet bestaat, doe dan wat...

Dus als deze wel bestaat, mag het script niks doen?
Ik heb hem weer aangepast dit is het nu, maar krijg helemaal geen info op me beeld...

<?php
include("db.php");
error_reporting(E_ALL);

if(!isset($_GET['id']))
{

?>
<html>
<head>
<title></title>
</head>
<body>
<?php

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
include"db.php";
$query = "UPDATE gebruiker SET v_naam = '".$_POST['voornaam']."' WHERE id = '$id' ";
$result = mysql_query($query);
if(!$result) echo mysql_error();
printf ("Updated records: %d\n", mysql_affected_rows());


}
else
{
?>
<form name="bewerk" method="POST" action="">

<?php
$algemeen = mysql_query
("SELECT * FROM gebruiker, geb_functie WHERE id='".$_GET['id']."' AND gebruiker.bevoegd = geb_functie.nr");
if($a = mysql_fetch_assoc($algemeen))
{
?>

<table>
<tr>
<td>Voornaam</td>
<td><input type="text" name="voornaam" value="<?php echo $a['v_naam']; ?>"></td>
</tr>

</table>
<input type="submit" value="Submit" name="POST">

<?php
}
}
}
?>
Tip: Haal de logica en de html-output uit elkaar. Doordat je dat nu niet hebt gedaan, zie je nog steeds niet dat jouw script niets doet met $_GET['id'].

Het uitvoeren van bv. een query tussen de html-code, is gewoon fout. Althans, het is vragen om problemen en dat beschouw ik als fout. Niemand zit te wachten op problemen...

1) is er een formulier verzonden
2) is het id aanwezig en nummeriek
3) voer de query uit
4) is de query gelukt
5) zijn er records bijgewerkt
6) begin output aan te maken <html> etc.

T/m punt 5 is er dus nog helemaal niets aan output aangemaakt, hooguit wat variabelen met tekst die je later bij punt 6 gaat echoen.
jah.... naja dan ga ik maar beetje prutsen.
Hij werkt

Reageren