Beste,

Ik heb de onderstaande code geschreven om gegevens in mijn database te kunnen wijzigen.
Helaas werkt deze niet.
Als ik zo de code bekijk snap ik ook niet wat ik heb fout gedaan.
Hopelijk kan iemand mij helpen.

<?php
	
	mysql_query("
	   
		INSERT INTO tbl_log VALUE ('','".$_SESSION['username']."',NOW(),'Menu volgorde aan het wijzigen')
	   
	");
	
	$submit = $_POST['submit'];
	
	$order = $_POST['order'];

	if($submit){
	
		if($order){
		
			mysql_query("
				
				UPDATE tbl_menu SET volgorde='".$order."' WHERE id='".$MenuInfo['id']."'
				
			") or die(mysql_error());
			
			mysql_query("
	   
				INSERT INTO tbl_log VALUE ('','".$_SESSION['username']."',NOW(),'Heeft de gegevens van ".$titel." gewijzigd')
	   
			");
			
			echo "<script> window.location='index.php?pagina=menu&msg=18' </script>";
		
		}
		else
			echo "<script> window.location='index.php?pagina=menu-wijzigen&err=4&id=".$id."' </script>";
			
	}

?>

<h1>Volgorde wijzigen</h1><br />

<form action ="index.php?pagina=menu-volgorde" method="POST">

	<table border="0" width="100%">
		
		<?php
			
			$MenuId = mysql_query("SELECT * FROM tbl_menu ORDER BY volgorde") or die(mysql_error());
				
			while($MenuInfo = mysql_fetch_assoc($MenuId)){
			
				echo "
					
				<tr>

					<td width='20%'><input type='text' name='order' value='".$MenuInfo['volgorde']."' style='width:100%;' /></td>
					<td width='80%'>".$MenuInfo['titel']."</td>
					
				</tr>
					
				";
				
			}
			
		?>
	
	</table>
	
	<table border="0" width="100%">
	
		<tr>
			
			<td></td>
			<td><input type="submit" name="submit" value="Wijzig" /></td>
		
		</tr>
	
	</table>

</form>
- Controleer met if($_SERVER['REQUEST_METHOD']=="POST") { of een formulier verstuurd is, en niet via een veld
- Variabelen overschrijven op lijn 9 en 11 is onnodig. Je kan deze $_POST variabelen ook direct in je query gebruiken.
- Gebruik bij voorkeur de mysqli-functies, omdat de mysql()-functies gedateerd zijn
- Beveilig je $_POST ($_GET en $_COOKIE) met mysqli_real_escape_string() tegen SQL-Injection
- Zorg voor goede foutafhandeling op je mysqli_query(), en controleer of deze FALSE is, en toon dan een error met mysqli_error(). (liefst niet zichtbaar voor jan en alleman)
Waar komt de variabele $MenuInfo['id'] vandaan op regel 19?
En $titel en $id een paar regels na de update query?

Reageren