Beste luitjes,

Ik zit met het probleem dat ik mijn opgevraagde gegevens uit de database niet gewijzigd terug krijg in de database.
Het maakt het allemaal wat lastiger omdat ik met een WYSIWYG editor werk zodat ik qua vormgeving meer controle heb.
Ik moet dus mijn php op diverse plaatsen invoeren om tot een werkend geheel te komen.

Nu heb ik het al voor elkaar om de record id op te vragen in een gemaakt formulier. Nu zie ik dus de NAW gegevens en kan ze aanpassen.
Nu wil ik al de formuliervelden weer terug sturen naar de database als gewijzigd. Dit lukt dus niet.

Hier de codes die ik gebruik om de gegevens op te halen uit de database:


<?php 
$dbhost = "localhost";  
$dbuser = "user";    
$dbpass = "password"; 
$dbname = "database"; 

mysql_connect($dbhost,$dbuser,$dbpass); 
mysql_select_db($dbname); 

$id = $_GET['id'];
$Wijzig = mysql_query("SELECT * FROM NAW WHERE id = $id ");
$record = mysql_fetch_array($Wijzig);
?>
<form name="Gewijzigd" method="post" action="Gewijzigd.php" id="Form2" onsubmit="return ValidateGewijzigd(this)">
<div id="wb_Text2" style="position:absolute;left:57px;top:29px;width:150px;height:400px;z-index:25" align="right">
<font style="font-size:13px" color="#000000" face="Arial">id:<br>
<br>
Voornaam: <br>
<br>
Tussenvoegsel:<br>
<br>
Achternaam:<br>
<br>
Adres:<br>
<br>
Postcode:<br>
<br>
Woonplaats:<br>
<br>
Telefoon:<br>
<br>
Gsm:<br>
<br>
E-mail:<br>
<br>
Geboorte datum:<br>
<br>
Functie:<br>
<br>
Lid sinds:</font></div>
<input type="text" id="Editbox2" style="position:absolute;left:212px;top:58px;width:144px;font-family:Courier New;font-size:13px;z-index:26" size="18" name="Voornaam" value="<?php echo $record[Voornaam]; ?>" tabindex="1">
<input type="text" id="Editbox1" style="position:absolute;left:212px;top:151px;width:248px;font-family:Courier New;font-size:13px;z-index:27" size="31" name="Adres" value="<?php echo $record[Adres]; ?>" tabindex="4">
<input type="text" id="Editbox4" style="position:absolute;left:213px;top:183px;width:80px;font-family:Courier New;font-size:13px;z-index:28" size="10" name="Postcode" value="<?php echo $record[Postcode]; ?>" tabindex="5">
<input type="submit" id="Button2" name="Button2" value="Wijzig gegevens" style="position:absolute;left:212px;top:452px;width:153px;height:25px;z-index:29" tabindex="13">
<input type="text" id="Editbox3" style="position:absolute;left:212px;top:119px;width:200px;font-family:Courier New;font-size:13px;z-index:30" size="25" name="Achternaam" value="<?php echo $record['Achternaam']; ?>" tabindex="3">
<input type="text" id="Editbox6" style="position:absolute;left:213px;top:214px;width:200px;font-family:Courier New;font-size:13px;z-index:31" size="25" name="Woonplaats" value="<?php echo $record[Woonplaats]; ?>" tabindex="6">
<input type="text" id="Editbox5" style="position:absolute;left:213px;top:246px;width:112px;font-family:Courier New;font-size:13px;z-index:32" size="14" name="Telefoon" value="<?php echo $record[Telefoon]; ?>" maxlength="11" tabindex="7">
<input type="text" id="Editbox8" style="position:absolute;left:213px;top:277px;width:112px;font-family:Courier New;font-size:13px;z-index:33" size="14" name="GSM" value="<?php echo $record[GSM]; ?>" maxlength="11" tabindex="8">
<input type="text" id="Editbox7" style="position:absolute;left:213px;top:310px;width:248px;font-family:Courier New;font-size:13px;z-index:34" size="31" name="Email" value="<?php echo $record[Email]; ?>" tabindex="9">
<input type="text" id="Editbox10" style="position:absolute;left:213px;top:377px;width:248px;font-family:Courier New;font-size:13px;z-index:35" size="31" name="Functie" value="<?php echo $record[Functie]; ?>" tabindex="11">
<input type="text" id="Editbox9" style="position:absolute;left:213px;top:409px;width:56px;font-family:Courier New;font-size:13px;z-index:36" size="7" name="Lid" value="<?php echo $record[Lid]; ?>" maxlength="4" tabindex="12">
<input type="text" id="Editbox12" style="position:absolute;left:212px;top:88px;width:80px;font-family:Courier New;font-size:13px;z-index:37" size="10" name="Voegsel" value="<?php echo $record['Voegsel']; ?>" tabindex="2">
<input type="text" id="Editbox11" style="position:absolute;left:213px;top:344px;width:104px;font-family:Courier New;font-size:13px;z-index:38" size="13" name="GebDatum" value="<?php echo $record[GebDatum]; ?>" maxlength="10" tabindex="10">
<input type="text" id="Editbox13" style="position:absolute;left:212px;top:26px;width:32px;font-family:Courier New;font-size:13px;z-index:39" size="4" name="id" value="<?php echo $record[id]; ?>" input readonly>
</form>


Nu heb ik dus de juiste php code nodig voor de pagina Verzend gewijzigde gegevens om de records uit het formulier op te pakken en gewijzigd terug te sturen naar de database.

Wie kan me helpen met de juiste code?

Groet,

Nanno

[edit]
Code tags toegevoegd, [ignore]
 
[/ignore] zodat het wat makkerlijker leest.

moderator: Danny Roelofs
[/edit]
Dit is een duidelijk antwoord..
Ga het ff proberen.

Thanks
Stefan, Jan,

Na wat stoeien is het gelukt.
Het werkt!!
Ik had de WHERE id direct na de SET gezet met mijn 1e poging, dat werkt dus niet.
Mijn dank is enorm groot voor jullie hulp.

Groet,

Nanno
Ik zet in dit topic even een reactie, omdat ik de tips hieruit ook gebruikt heb.
Toch heb ik nog een probleem. Hij geeft een fout bij het uivoeren van de query. (die ik heb ingesteld bij 'or die')
Ik wil de gegevens uit (Voorlopig) de 'titel' balk geupdate hebben. Het uitlezen van de database met de goede gegevens lukt wel, want ik krijg de titel in de balk. Als ik die echter aangepast heb en op 'wijzigen' klik, krijg ik de fout.
Hier mijn code..

<?php
if (isset ($_POST["submit"]))
{
$id = $_POST['id'];
$sql = "UPDATE reunisten_nieuws SET titel = '".$_POST['titel']."' WHERE id = ".$id;
$result = mysql_query($sql)
or die("Fout bij uitvoeren query");

$check = mysql_affected_rows();

if ($check != 0)
{
echo "<h2>Bericht Gewijzigd</h2>";

echo "<p>Het bericht is gewijzigd. Ga nu naar <a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten overzicht\">het berichten overzicht</a>.";
}
}

elseif (isset ($_POST["wijzigen"]))
{
$id = $_POST['id'];
$Wijzig = mysql_query("SELECT * FROM reunisten_nieuws WHERE id = $id ");
$record = mysql_fetch_array($Wijzig);


echo "<form method=\"POST\" action=\"" . $_SERVER['PHP_SELF'] . "\">";
echo "<p>";
echo "<input type=\"hidden\" name=\"show\" value=\"add\" />";
echo "Titel:<br />";
echo "<input type=\"text\" size=\"80\" name=\"titel\" value=\"" . $record['titel'] . "\"><br />";
echo "Bericht:<br />";


//
//@ERIC: hier is dat WYSIWYG-ding ingevoerd.
//

echo "<textarea id=\"tekst\" name=\"tekst\" style=\"height: 170px; width: 500px;\">" . $record['tekst'] . "</textarea><br />";
echo "<script language='javascript1.2'> generate_wysiwyg('tekst');</script>";

echo "<input type=\"submit\" name=\"submit\" value=\" Bericht wijzigen \"></p>";
echo "</form>";
}

else{

echo "<h2>Nieuws wijzigen</h2>";
echo "<table border='2' bordercolor='#000000'><tr><td width='300'><b>Onderwerp</b></td><td width='100'><b>Gepost door</b></td><td width='100'></td></tr>";

$sql = "SELECT id,titel,tekst,gepostDoorId,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM reunisten_nieuws ORDER BY datum DESC";

$res = mysql_query($sql);
$srv = $_SERVER['PHP_SELF'];

if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
$row['id'] = htmlentities($row['id']);
$row['titel'] = htmlentities($row['titel']);
$row['tekst'] = htmlOutput(($row['tekst']));
$row['gepostDoorId'] = nl2br(htmlentities($row['gepostDoorId']));

$idknop = $row['id'];

echo "<p><tr><td>" .$row['titel']. "</td><td>" .$row['gepostDoorId']. "</td><td>";
echo '<form action="'.$srv.'" method="post">
<center><input type="submit" name="wijzigen" value="Wijzig" /></center>
<input type="hidden" name="id" value="'.$idknop.'" />
</form>';
echo "</td></tr><p />";
}
}
else
{
echo "<p>Er zijn nog geen nieuwsberichten toegevoegd.</p>";
}
echo "</table>";
}
?>

Heeft iemand een oplossing?
welke fout geeft hij dan?
Zoals ik zelf heb ingesteld
<?
$result = mysql_query($sql)
or die("Fout bij uitvoeren query");
?>
je bent bij $sql aan het ein 2 keer " vergeten
Nu zegt hij wel dat er iets gewijzigd is, maar dat is er niet....

<?
if (isset ($_POST["submit"]))
{
$id = $_POST['id'];
$sql = "UPDATE reunisten_nieuws SET titel = '".$_POST['titel']."' WHERE id = '".$id."'";
$result = mysql_query($sql)
or die("Fout bij uitvoeren query");

$check = mysql_affected_rows();

if ($check != 0)
{
echo "<h2>Bericht Gewijzigd</h2>";

echo "<p>Het bericht is gewijzigd. Ga nu naar <a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten overzicht\">het berichten overzicht</a>.";
}
}
?>
<?php
if (mysql_affected_rows() > 0)
?>
Dat is natuurlijk eenvoudiger... Je zou de waarde van mysql_affected_rows natuurlijk ook even kunnen echoen, dan wordt het pas echt duidelijk.

Ps. Beveiliging verdient ook wat aandacht, mysql_real_escape_string() schittert door afwezigheid. Of is SQL-injection een functionaliteit?
Het probleem is dat ik nu helemaal niks meer te zien krijg zodra ik op 'wijzigen' klik. Het scherm wordt wit... echoen kan dus ook niet....

p.s. Ik ben niet bekend met die termen...enige uitleg?

Reageren