Wanneer ik gegevens wijzig en op "Opslaan" druk krijg ik de melding dat de wijzigingen goed zijn doorgevoerd, maar er wordt niks gewijzigd en opgeslagen in de database. Ik denk zelf dat het aan het volgende stukje script ligt:

// opslaan
	if (isset($_POST['opslaan'])){
		for ($i = 0; $i <= $_POST['maxid'];$i++){				
			if (isset($_POST[$i])){
				$naam = $i."naam";
				$afdeling = $i."afdeling";
				$internnummer = $i."internnummer";
				$nummer = $i."nummer";
				$inlog = $i."inlog";
				mysql_query("UPDATE gsm SET 
					`naam` = '".$_POST[$naam]."',		
					`afdeling` = '".$_POST[$afdeling]."',
					`nummer` = '".$_POST[$nummer]."',					
					`internnummer` = '".$_POST[$internnummer]."', 
					`inlog` = '".$_POST[$inlog]."', 
					WHERE `id` = $i
				") or die (mysql_error());
			}
		}
		echo "De gegevens zijn succesvol bijgewerkt.<br>";
	}
	
	// bewerken
	if (isset($_POST['update'])){
		$maxid = 0;



Deel van de code:

<?php
//includes
include('config.php');

//session start
if(isset($_SESSION['id'])) {
} else{
	header("Location: index.php?pagina=beheer");
}
	// verwijderen
	if (isset($_POST['verwijder'])){
		foreach($_POST['telid'] As $value ){
			mysql_query("DELETE FROM `gsm` WHERE `id` = $value") or die (mysql_error());
			}
	}
	
	// opslaan
	if (isset($_POST['opslaan'])){
		for ($i = 0; $i <= $_POST['maxid'];$i++){				
			if (isset($_POST[$i])){
				$naam = $i."naam";
				$afdeling = $i."afdeling";
				$internnummer = $i."internnummer";
				$nummer = $i."nummer";
				$inlog = $i."inlog";
				mysql_query("UPDATE gsm SET 
					`naam` = '".$_POST[$naam]."',		
					`afdeling` = '".$_POST[$afdeling]."',
					`nummer` = '".$_POST[$nummer]."',					
					`internnummer` = '".$_POST[$internnummer]."', 
					`inlog` = '".$_POST[$inlog]."', 
					WHERE `id` = $i
				") or die (mysql_error());
			}
		}
		echo "De gegevens zijn succesvol bijgewerkt.<br>";
	}
	
	// bewerken
	if (isset($_POST['update'])){
		$maxid = 0;
	?>
		
    <form name="verzenden" action="" method="post">
    <h2>Bewerken</h2>
	
    <?php
		foreach($_POST['telid'] As $value ){
			echo "<input type='hidden' name='telid' value=$value />";
			
			// select
			$result2 = mysql_query("SELECT * FROM `gsm` WHERE id=$value");
			while($row2 = mysql_fetch_array( $result2 )) {
					
					echo "<b>".$row2['naam']."</b><br>";
					echo "<table>";
					echo "<td>Naam: </td><td><input type='text' size='25' name='".$id."naam' value='".$row2['naam']."' /></td>";
					echo "</tr><tr>";
					echo "<td>Telefoonnummer: </td><td><input type='text' size='25' name='".$id."nummer' value='".$row2['nummer']."' /></td>";
					echo "</tr><tr>";
					echo "<td>Inlognaam: </td><td><input type='text' size='25' name='".$id."inlog' value='".$row2['inlog']."' /></td>";					
					echo "</tr><tr>";
					echo "<td>Afdeling: </td><td><input type='text' size='25' name='".$id."afdeling' value='".$row2['afdeling']."' /></td>";
					echo "</tr><tr>";
					echo "<td>Intern verkort nummer: </td><td><input type='text' size='25' name='".$id."internnummer' value='".$row2['internnummer']."' /></td>";					
					echo "</tr></table>";
					

					
					if ($id > $maxid){
						$maxid = $id;
					}
				} 
		}
	echo "<input type='hidden' name='maxid' value='".$maxid."' />";
	?>
	<br>
	<center>
   
    <input type='submit' name='opslaan' value='Opslaan' />
    </center>
	</form>
    <?php
	} else {
	
	echo "<h2>Gegevens bewerken</h2>";
	?>
Aar schreef op 18.03.2009 12:47
Je ziet geen foutmelding ofzo?
Kijk je wel in de juiste database ofzo?

probeer eens dit:


<?php
$sql = "UPDATE gsm SET naam = '".$_POST[$naam]."',        
afdeling = '".$_POST[$afdeling]."',
nummer = '".$_POST[$nummer]."',                    
internnummer = '".$_POST[$internnummer]."', 
inlog = '".$_POST[$inlog]."' 
WHERE id = '".$i."'";

$query = mysql_query($sql);
if (!$query) {
echo "Foutje in je query: ".mysql_error().".<br />De query was: ".$sql;
} else {
echo "SQL klopt: ".$sql;
?>

Zie dan geen foutmelding? En zo nee, welke query toont hij?


Hij weergeeft geen van beide meldingen en ik zit wel in de goede database dat weet ik zeker.
Ik vergat een } accolade aan het eind :P
En dan?
Aar schreef op 18.03.2009 12:56
Ik vergat een } accolade aan het eind :P
En dan?


Ja die had ik zelf al toegevoegd, maar dan wordt er nog niks weergeven.
dan lijkt je script eerder dood te lopen voordat de query wordt gerund.

Zet eens op diverse plekken een echo neer, om te achterhalen waar het probleem zit?
@aar
Dat bedoel ik idd, echoén, net zolang tot je ergens op stukloopt.
Ik heb het overal geprobeerd maar krijg overal goede melding.

Het valt me wel op dat ie overal zegt dat de query klopt behalve bij de query om op te slaan. Maar ook geeft ie geen error aan. Klopt de query dan niet of wat kan dit zijn?
Of hij geeft de SQL string aan, OF hij toont een foutmelding met de SQL string.
Als dat niet zo is, dan loop je script ergens sdood VOORDAT de query wordt gedraaid.
Zet een boven je query een echo neer. Grote kans dat die ook niet wordt getoond.
Maar als je de succes message krijgt...?

darbij valt me iets op.


<?
 if (isset($_POST['opslaan'])){
        for ($i = 0; $i <= $_POST['maxid'];$i++){                
            if (isset($_POST[$i])){
                $naam = $i."naam";
                $afdeling = $i."afdeling";
                $internnummer = $i."internnummer";
                $nummer = $i."nummer";
                $inlog = $i."inlog";
                mysql_query("UPDATE gsm SET naam = '".$_POST[$naam]."',        
                    afdeling = '".$_POST[$afdeling]."',
                    nummer = '".$_POST[$nummer]."',                    
                    internnummer = '".$_POST[$internnummer]."', 
                    inlog = '".$_POST[$inlog]."', 
                    WHERE id = $i") 
                    or die (mysql_error());
            }
        }
         //echo "De gegevens zijn succesvol bijgewerkt.<br>";
    }


Zet onderstaande echo eens onder de query, want nu als er op submit is geklikt krijg je anywayz deze melding.
//echo "De gegevens zijn succesvol bijgewerkt.<br>";
Wesley, zie mijn post over foutafhandeling.
Wanneer ik een echo""; achter if (isset($_POST[$i])){ zet wordt deze niet weergeven. Betekend dit ,dat hier de code doodloopt?

Reageren