hallo allemaal,
ik heb net een pagina gemaakt, en ik zie dan op de pagina bovenaan alle gegevens in een database, en onderin een formulier om een waarde (gereageerd) te veranderen.
dit is mijn code die ik nu heb:


<?php
if ($_POST['uid'])
{
$con = mysql_connect("sql210.byethost17.com","b17_5632309","PASS");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("b17_5632309_aanmelden", $con);

mysql_query("UPDATE contacts SET gereageerd = '$_POST["gereageerd"]'
WHERE id = '$_POST["uid"]'");

mysql_close($con);
}
?>

<html>
<head>
<center><h1>BBQ aanmeldingen</h1></center>
</head>
<body>
<center><b><title>BBQ aanmeldingen</title></b></center><br>
</body>
</html>

<?php
mysql_connect("sql210.byethost17.com", "b17_5632309", "PASS") or die(mysql_error());
mysql_select_db("b17_5632309_aanmelden") or die(mysql_error());

$result = mysql_query("SELECT * FROM `contacts` LIMIT 0, 30 ");   
 
while($row = mysql_fetch_assoc($result)){
   echo "<b>Aanmelding nummer:</b> ".$row['id']. ", <b>Naam:</b> ".$row['name']
       .", <b>Email:</b> ".$row['email'].", <b>huisnummer</b> ".$row['huisnr']
       .", <b>Opmerkingen:</b> ".$row['comment']." <b>geactiveerd:</b> ".$row['gereageerd']."<br/> <br/>";
}
?>

<html>
<body>
<center><title><b>activeren:</b></title></center><br> <br>

<form action="view.php" method="post">
aanmeldings nummer: <input type="text" name="uid" /><br>
geactiveerd? (ja/nee): <input type="text" name=gereageerd" /><br>
<input type="submit" />
</form>


als ik mijn pagina open, zie ik niks, gewoon een lege pagina (ik laat het formulier naar dezelfde pagina gaan als hij al is... (view.php))
wat kan ik doen om dit te fixen?
ik wil dus dit:

ik open de pagina en zie alle gegevens in de database, en een leeg formulier met daarin de optie om de id en een ja/nee vraag in te vullen.
als ik dan op verstuur klik moet de pagina opnieuw laden en de gegevens in de database veranderen (dus: gereageerd veranderen wanneer de id dezelfde is als ingevuld.) maar het lukt maar niet, kan iemand me helpen?
volgens mij klopt er nu echt helemaal niks meer van...
als het niet teveel gevraagd is, zou iemand misschien even de hele code willen controleren en e.v.t verbeteren? (en dan de hele nieuwe code posten in plaats van een gedeelte...). ik vind het namelijk een beetje moeilijk worden :S
Wat moet er ingevuld worden bij uid, want dat heb ik bij de controle/validatie beschouwt als integer en niet als tekst.

<?php
ini_set('display_errors',1);
error_reporting(E_ALL | E_STRICT);

if ( $_SERVER['REQUEST_METHOD'] == 'POST'
&& isset($_POST['uid']) && trim($_POST['uid']) != ''
&& isset($_POST['gereageerd'] && trim($_POST['gereageerd']) != '') {

$sql = "UPDATE contacts
SET gereageerd = '".mysql_real_escape_string($_POST['gereageerd'])."'
WHERE id = ".mysql_real_escape_string($_POST['uid']);

if (!$result = mysql_query($sql)) {
echo mysql_error().'<br />'.$sql;
}
}
else {
echo 'er is wat fout foutgegaan bij het posten van het form';

}
iemand vult in het formulier de aanmeldings-id in, (dit wordt gepost als uid) en dan moet het uiteindelijk worden gepost als id in de database...

en de pagina is nog steeds blank... volgens mij is het makkelijker om gewoon een nieuwe code te maken in plaats van de hele tijd fixen...
Mag ik vragen waar dit voor is? Ik vind het niet erg om te helpen maar ik ben er niet om iemand zijn rotzooi op te ruimen.

Je gooit in elk geval een hele hoop dingen door elkaar en doet dingen dubbel die maar enkel hoeven.
het is voor het organiseren van een feest, alle mensen die meedoen vullen op een andere pagina iets in, (wordt dan in de database opgeslagen, werkt allemaal perfect), en dat is deze pagina om de gegevens te bekijken en om in te vullen of er al is gereageerd op de aanmelding door een van de organisatoren.
als je wil kan ik ook even laten zien hoe de database tabel eruit ziet?
Onder voorbehoud en op eigen risico.

Er zitten Engelse stukken tussen omdat die uit mijn eigen snippet bibliotheek komen.

Ik snap alleen je logica niet echt maar dat kan aan mij liggen :p


 <?php

    /*--------------------------------------------------------------------------------------------------------------------------	
    (§) Settings | MySQL database connection info.
    --------------------------------------------------------------------------------------------------------------------------*/	
	
	#| Database info.
	
		$db_config = array(
						   
						   'host' 		=> 'localhost', 
						   'user' 		=> 'root', 
						   'password' 	=> '', 
						   'database' 	=> 'voorbeeld'
						   
						   );
		

    /*--------------------------------------------------------------------------------------------------------------------------	
    (§) MySQLi | Database connection.
    --------------------------------------------------------------------------------------------------------------------------*/	

	#| Connect to database.

		$mysqli = new mysqli($db_config['host'], $db_config['user'], $db_config['password'], $db_config['database']);


    /*--------------------------------------------------------------------------------------------------------------------------	
    (§) Defaults.
    --------------------------------------------------------------------------------------------------------------------------*/	

	#| Set " $error_log " array voor het opslaan van alle fouten.
	
		$error_log = array();
		
	
	#| Set " $output_message " voor het opslaan van het eind resultaat.
	
		$output_message = '';
		

    /*--------------------------------------------------------------------------------------------------------------------------	
    (§) Hier doe je iets updaten.
    --------------------------------------------------------------------------------------------------------------------------*/	
	
	#| Controleren of er een aanvraag is.
	
		if($_SERVER['REQUEST_METHOD'] == 'POST'){		
		
		#| $_POST['uid'] controleren.
		
			if(!isset($_POST['uid']) or !ctype_digit($_POST['uid'])){
				
				$error_log[] = 'Error! Ongeldig ID.';
			}
			
			
		#| $_POST['gereageerd'] controleren.
		
			if(!isset($_POST['gereageerd']) or empty($_POST['gereageerd'])){
				
				$error_log[] = 'Error! Ongeldig antwoord.';
			}
			
		
		#| Controleren of er zich geen fouten hebben voorgedaan.
		
			if(empty($error_log)){

			#| Set SQL statement.
			
				$sql = "UPDATE
				
							contacts
							
						SET 
						
							gereageerd = '".$mysqli->real_escape_string($_POST['gereageerd'])."'
							
						WHERE 
						
							id = ".$mysqli->real_escape_string($_POST['uid'])." 
							
						";
						
						
			#| Execute the SQL statement.
			
				if(!$result = $mysqli->query($sql)){
				
				/*---- INFO: An error has occurred in your SQL statement. ----*/
					
					trigger_error('Error! '.$mysqli->error);
				
				}
				else{
		
				/*---- INFO: The SQL statement has been succesfully executed. ----*/
					
				#| Check the amount of records that have been updated.
				
					if($mysqli->affected_rows > 0){
		
					/*---- INFO: Update successful. ----*/
		
						$output_message = 'Update gelukt.';
						
					}
					else{
		
					/*---- INFO: Update failed. ----*/
		
						$error_log[] = 'Error! Er is iets fout gegaan / ID bestaat niet.';

					}
				}
			}
		}
  
?>

<html>
<head>
<title>BBQ aanmeldingen</title>
</head>
<body>
<center><b>BBQ aanmeldingen</b></center><br>

<?php

    /*--------------------------------------------------------------------------------------------------------------------------	
    (§) Resultaat en Error log weergeven.
    --------------------------------------------------------------------------------------------------------------------------*/	

	#| Output message weergeven.
	
		if(!empty($output_message)){ echo '<p>'.$output_message.'</p>'; }
		
	
	#| Error log weergeven.
	
		if(!empty($error_log)){
		
			echo '<p>'.implode('<br />', $error_log).'</p>';
		}


    /*--------------------------------------------------------------------------------------------------------------------------	
    (§) Aanmeldingen weergeven.
    --------------------------------------------------------------------------------------------------------------------------*/	

	#| Set SQL statement.
	
		$sql = "SELECT 
					
					* 
				
				FROM 
					
					contacts 
					
				LIMIT
				
					0,30

				";
				
				
	#| Execute the SQL statement.
	
		if(!$result = $mysqli->query($sql)){
		
		/*---- INFO: An error has occurred in your SQL statement. ----*/
			
			trigger_error('Error! '.$mysqli->error);
		
		}
		else{

		/*---- INFO: The SQL statement has been succesfully executed. ----*/

		#| Check if one or more results have been found.
		
			if($result->num_rows > 0){

			/*---- INFO: One or more results have been found. ----*/

			#| Loop through all results.

				while($row = $result->fetch_assoc()){
				
				   echo "<b>Aanmelding nummer:</b> ".htmlentities($row['id']). ", <b>Naam:</b> ".htmlentities($row['name'])
					   .", <b>Email:</b> ".htmlentities($row['email']).", <b>huisnummer</b> ".htmlentities($row['huisnr'])
					   .", <b>Opmerkingen:</b> ".htmlentities($row['comment'])." <b>geactiveerd:</b> ".htmlentities($row['gereageerd'])."<br/> <br/>";
				
				}
			}
			else{

			/*---- INFO: Could not find any results. ----*/

				echo 'Geen aanmeldingen gevonden.';

			}
		}

?>

<center><b>activeren:</b></center><br> <br>

<form action="view.php" method="post">
aanmeldings nummer: <input type="text" name="uid" /><br>
geactiveerd? (ja/nee): <input type="text" name="gereageerd" /><br>
<input type="submit" />
</form> 

</body>
</html>
heel erg bedankt!
en het engels maakt niet uit, vertaal wel ff :D
en als je wil kan ik de logica wel uitleggen?
Dan wil ik toch nogmaals duidelijk maken dat het valideren/controleren met empty() totaal zinloos is:

http://wiki.phpfreakz.nl/Empty

<?php
if($mysqli->affected_rows > 0){

/*---- INFO: Update successful. ----*/

$output_message = 'Update gelukt.';

}
else{

/*---- INFO: Update failed. ----*/

$error_log[] = 'Error! Er is iets fout gegaan / ID bestaat niet.';

}
?>
is ook voorliegen affected rows geeft 0 terug als er geen gegevens gewijzigd worden, het zegt niets over het feit dat er wat fout is gegaan.
Over empty heb je gelijk bij de controle op $output_message en $_POST['geantwoord']

Hoe bedoel je voorliegen? Er word van tevoren gecontroleerd of er iets is fout gegaan met de query.

Reageren