Ik ben vanuit een formulier data aan het updaten. Toch lukt het mij niet om alle velden uit de database te updaten. Het gaat hier om tekstvelden en een afbeelding die in de database is opgeslagen.

Update code:


	if($_POST['naamopdrachtgever'] != "" AND $_POST['omschrijving'] != "" AND $_POST['website'] != "" AND $AFBNAME != "" AND $AFBTYPE != "" AND $AFBSIZE != "" AND $AFBCONTENT != "" AND $AFBDATUM != "") {
		$sql = "UPDATE opdrachtgevers SET naamopdrachtgever='".$_POST['naamopdrachtgever']."',omschrijving='".$_POST['omschrijving']."',website='".$_POST['website']."'".$AFBNAME."','".$AFBTYPE."','".$AFBSIZE."','".$AFBCONTENT."',NOW()); WHERE id='".$_POST['id']."'";


Gehele code:


<?
// Pagina: cms_wijzigen_opdrachtgever.php: Gegevens wijzigen.
include("config.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>Engelen</title>
    <link rel="stylesheet" href="stylesheet.css" type="text/css" media="screen" />
	<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
  </head>
  <body>  
   <div id="pagewrapper">   
  	<div id="headerleft">
	
	
	</div>	
	<div id="headercenter"><img src="image/HomeDEF.jpg" width="400" height="170"  /></div>
	<div id="headerright"><img src="image/logo2.gif" width="135" height="72"  /></div>
      <div id="left">
	  <!--  menu cms --> 
	    <?
	  include("cms_menu.php");

	   ?> 
	   	   
	  </div>
      <div id="center">
      <h1>Content Managment systeem: Engelen</h1><br />
<?

// Inloggen verplicht; safe.php
include("safe.php");

$var_id = $_GET['id'];

//echo "eerste var: " . $var_id . "";

// orgineel --  if(isset($_POST['submit'])) {

if ((isset($_POST['submit'])) AND (!empty($_FILES))) { 
  	
	 $AFBNAME    = $_FILES['input']['name'];
  $AFBTYPE    = $_FILES['input']['type'];
  $AFBSIZE     = $_FILES['input']['size'];
  $tmpname    = $_FILES['input']['tmp_name'];
   $AFBCONTENT    = file_get_contents($tmpname);
   $fp                = fopen($tmpname,'r');
   $AFBCONTENT     = fread($fp,$AFBSIZE);
    $AFBCONTENT     = addslashes($AFBCONTENT );
	
	
	if($_POST['naamopdrachtgever'] != "" AND $_POST['omschrijving'] != "" AND $_POST['website'] != "" AND $AFBNAME != "" AND $AFBTYPE != "" AND $AFBSIZE != "" AND $AFBCONTENT != "" AND $AFBDATUM != "") {
		$sql = "UPDATE opdrachtgevers SET naamopdrachtgever='".$_POST['naamopdrachtgever']."',omschrijving='".$_POST['omschrijving']."',website='".$_POST['website']."'".$AFBNAME."','".$AFBTYPE."','".$AFBSIZE."','".$AFBCONTENT."',NOW()); WHERE id='".$_POST['id']."'"; //get id uit form.
		
					
		$query = mysql_query($sql);
		if($query == TRUE) {
			echo "De gegevens zijn succesvol gewijzigd.<br />\n<a href=\"cms_index.php\">&laquo; Cms_index</a>";
			echo "var: " . $_POST['id'] . "";
		}else{
			echo "Er is een fout opgetreden tijdens het bijwerken van de gegevens. Probeer het later nog eens.<br />\n<a href=\"javascript:history.back()\">&laquo; Ga terug</a>";
			echo "var: " . $var_id . "";
		 }	
	}else{
		echo "Een van de velden is leeg.<BR>\n";
		echo "<a href=\"cms_index.php\">&laquo; Cms_index</a>";
		echo "var: " . $var_id . "";
	}
	
 
 
 
 
 
}else{
 // Formulier
 $sql = "SELECT * FROM opdrachtgevers WHERE id='".$var_id."'";   
 $query = mysql_query($sql);
 $rij = mysql_fetch_object($query);
 $naamopdrachtgever = htmlspecialchars($rij->naamopdrachtgever);
 $omschrijving = htmlspecialchars($rij->omschrijving);
 $website = htmlspecialchars($rij->website);
 ?>
<form method="post" action="<?php echo($_SERVER['PHP_SELF']); ?>" enctype="multipart/form-data">
 <input type="hidden" name="id" value="<?php echo ($var_id);?>">
 <table>
   <tr>
    <td><p><b>Opdrachtgever</b></p></td>
    </tr>
	
	  <tr>
     <td height="5"</td>
    </tr>
	
	<tr>
    <td><input size="25" type="text" name="naamopdrachtgever" value="<?= $naamopdrachtgever ?>" /></td>
    </tr>
	
		  <tr>
     <td height="9"></td>
    </tr>
	
	<tr>
    <td><p><b>Omschrijving</b></p></td>
    </tr>
	
		  <tr>
     <td height="5"></td>
    </tr>
	
	<tr>
    <td><textarea name="omschrijving" cols="40" rows="9" ><?= $omschrijving ?></textarea></td>
    </tr>
	
		  <tr>
     <td height="9"></td>
    </tr>
	
	<tr>
    <td><p><b>Website</b></p></td>
    </tr>
	
		  <tr>
     <td height="5"></td>
    </tr>
	
	<tr>
    <td><input size="25" type="text" name="website" value="<?= $website ?>" /></td>
   </tr>
   <tr>
     <td height="9"></td>
	<tr>
    <td><p><b>Logo</b></p></td>
    </tr>
	
		  <tr>
     <td height="5"></td>
    </tr> 
    </tr>
    <tr>
   <td><img src="afbeelding.php?id=<?= $var_id ?>"></td>
   </tr>
   
   	  <tr>
     <td height="9"></td>
    </tr>
	
	<tr>
     <td><input type="file" name="input"></td>
    </tr>
	
   	  <tr>
     <td height="9"></td>
    </tr>
	
   <tr>
    <td><input type="submit" name="submit" value="Ok" /></td>
   </tr>
   
   	  <tr>
     <td height="9"></td>
    </tr>
  </table>
 </form>
 
<?
}


?>
 </div>	 
 
 <div id="right"></div>
 <div class="footer"></div>

  </div>
  </body>
</html>
jou query ziet er wel raar uit

<?php
$sql = "UPDATE opdrachtgevers SET
naamopdrachtgever='".$_POST['naamopdrachtgever']."',
omschrijving='".$_POST['omschrijving']."',
website='".$_POST['website']."'".$AFBNAME."',
'".$AFBTYPE."',
'".$AFBSIZE."',
'".$AFBCONTENT."',
NOW());
WHERE id='".$_POST['id']."'"; //get id uit form.
?>
Je hebt 3 waarden die je ergens in wilt stoppen maar waar je niet meldt in welk veld.
Verder heb je achter now() nog ); staan wat niet kan kloppen.

Ook is het handig om (tijdens het testen) de fouten te laten weergeven, eventueel als commentaar zodat je in de broncode moet kijken of de error te zien.
Ik heb hierbij ook de query als uitput
<?php
$query = mysql_query($sql);
if($query == TRUE) {
echo "De gegevens zijn succesvol gewijzigd.<br />\n<a href=\"cms_index.php\">&laquo; Cms_index</a>";
echo "var: " . $_POST['id'] . "";
}else{
echo "Er is een fout opgetreden tijdens het bijwerken van de gegevens. Probeer het later nog eens.<br />\n<a href=\"javascript:history.back()\">&laquo; Ga terug</a>";
echo "var: " . $var_id;
echo "\n\n<!--\nError: ".mysql_error()."\nQuery: ".$sql."\n-->";
}
?>
Bij het veld om de gegevens toe te voegen heb ik deze query gebruikt wat wel lukt:

[code]
<?php
$sql = "INSERT INTO opdrachtgevers (naamopdrachtgever,omschrijving,website,AFBNAME,AFBTYPE,AFBSIZE,AFBCONTENT,AFBDATUM) VALUES ('".$_POST['naamopdrachtgever']."','".$_POST['omschrijving']."','".$_POST['website']."','".$AFBNAME."','".$AFBTYPE."','".$AFBSIZE."','".$AFBCONTENT."',NOW());";
?>[code]
Ja, dat is een INSERT en geen UPDATE.
Ik gebruik nu dit, maar dan krijg ik de foutmelding 'een van de velden is leeg'

<?
	if($_POST['naamopdrachtgever'] != "" AND $_POST['omschrijving'] != "" AND $_POST['website'] != "" AND $_POST['AFBNAME'] != "" AND $_POST['AFBTYPE'] != "" AND $_POST['AFBCONTENT'] != "" AND $_POST['AFBDATUM'] != "" ) { $sql = "UPDATE opdrachtgevers SET naamopdrachtgever='".$_POST['naamopdrachtgever']."',omschrijving='".$_POST['omschrijving']."',website='".$_POST['website']."',AFBNAME='".$_POST['AFBNAME']."',AFBTYPE='".$_POST['AFBTYPE']."',AFBSIZE='".$_POST['AFBCONTENT']."',NOW()) WHERE id='".$_POST['id']."'"; //get id uit form. ?>
AFBSIZE='".$_POST['AFBCONTENT']."',NOW()) WHERE

Wat wil je met , NOW() ........
Met NOW() wil ik de datum invoeren van dat moment
Maar dan wel zoiets.....
AFBSIZE='".$_POST['AFBCONTENT']."', datumveldnaam = NOW()) WHERE
Wanneer ik dit gebruik, krijg ik de melding 'er is een veld leeg'



	if($_POST['naamopdrachtgever'] != "" AND $_POST['omschrijving'] != "" AND $_POST['website'] != "" AND $_POST['AFBNAME'] != "" AND $_POST['AFBTYPE'] != "" AND $_POST['AFBCONTENT'] != "" AND $_POST['AFBDATUM'] != "" ) { $sql = "UPDATE opdrachtgevers SET naamopdrachtgever='".$_POST['naamopdrachtgever']."',omschrijving='".$_POST['omschrijving']."',website='".$_POST['website']."',AFBNAME='".$_POST['AFBNAME']."',AFBTYPE='".$_POST['AFBTYPE']."',AFBSIZE='".$_POST['AFBCONTENT']."'AFBDATUM= NOW()) WHERE id='".$_POST['id']."'"; //get id uit form. 
Komma vergeten.....
Deze komma 'AFBDATUM= NOW())' bedoel je?
mm dat helpt iedergeval niet.

Reageren