krijg gegevens niet in mysql , wat doe ik fout?

Status
Niet open voor verdere reacties.

canixxx

Gebruiker
Lid geworden
23 aug 2012
Berichten
8
krijg gegevens niet in mysql , wat doe ik fout?

script:
PHP:
<html>
	<head>
		<title>registratie</title>
		
<?php
			if (isset($_POST['submit'])) {
			$con = mysql_connect('localhost', 'root', 'root');
			if (!$con){
			die( "Can not connect: " . mysql_error());
				}

			mysql_select_db("registratie",$con);

			$sql = INSERT INTO `registratie`(`email`, `Voornaam`, `Achternaam`, `Woonplaats`, `Leeftijd`) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5])

	 		mysql_querry($sql,$con);
						
			mysql_close($con);
				}
?>

		<style type="text/css">
div {
	border-bottom:1px solid #efefef;
	margin: 10px;
	padding-bottom; 10px;
	width: 260px;}
title {
	float: left;	
	width: 100px;
	text-align: right;
	padding-right: 10px;}
radio-buttons label {
	float: none;}
submit{
	text-align: right;}
input{
	float: right;}
select{
	float: right;}
		</style>
	

<form action ="registratie.php" method="post">
	<div>
		<label for="email"clas="title">E-mail:</label>
		<input type="text" id="email" name="email"/>
	</div>
	<div>
		<label for="Voornaam"clas="title">Voornaam:</label>
		<input type="text" id="Voornaam" name="Voornaam"/>
	</div>
	<div>
		<label for="Achternaam"clas="title">Achternaam:</label>
		<input type="text" id="Achternaam" name="Achternaam"/>
	</div>
	<div>
		<label for="Woonplaats"clas="title">Woonplaats:</label>
		<input type="text" id="Woonplaats" name="Woonplaats"/>
	</div>
	<div>
		<label for="Leeftijd"clas="title">Leeftijd:</label>	
		<select>
	  		<option value="16">16</option>
	  		<option value="17">17</option>
	  		<option value="18">18</option>
	  		<option value="19">19</option/>
		</select>
	</div>
		<input type="submit" value="Verzenden"> <input type="reset" value="Reset!"/>
	</div>
</form>
</html>
 
Laatst bewerkt door een moderator:
Aangezien deze vraag meer PHP gerelateerd is dan MySQL, heb ik deze vraag verplaatst

Zoals je wellicht ziet aangezien ik syntax highlighting voor je heb aangezet ;) gaat het op regel 14 en 16 mis.

Een query moet als string geschreven worden dus zul je er quotes om heen moeten zetten. Hier heeft PHP je ook een foutmelding voor maar blijkbaar heb je die niet aanstaan. Lees het tweede bericht op deze engelse pagina even door en zorg dat PHP foutmeldingen toont: http://stackoverflow.com/questions/845021/how-to-get-useful-error-messages-in-php

Echter is het plaatsen van quotes niet voldoende, er schort ook nogal wat aan de waardes die je binnen VALUES() hebt staan.

Als je formulier elementen naar je database wilt sturen zul je die aan moeten roepen met $_POST['{waarde uit name-attribuut van formulier}']. Voor het e-mailadres is dat dus $_POST['email']. En omdat je nooit je gebruikers moet vertrouwen wil je de ingevoerde waarde niet rechtstreeks naar de database sturen, gooi daarom altijd mysql_real_escape_string() om je variabelen.

Daarnaast bestaat de functie mysql_querry() niet binnen PHP, ik vermoed dat je mysql_query() bedoelt ;)
Aangezien ik niet het idee heb dat je precies weet wat je doet raad ik je aan om van regel 16 dit te maken:
PHP:
mysql_query($sql, $con) or die(mysql_error());

Op die manier krijg je een foutmelding getoond als de query niet klopt, die foutmelding kun je eenvoudig op Google opzoeken (of hier plaatsen) om te controleren wat nou precies de oorzaak van de melding is.
 
Laatst bewerkt:
Oke, zou je de oplossing willen plaatsen en dan ook de status op opgelost willen zetten? Dan hebben wellicht andere gebruikers er ook wat aan ;)
 
Dit is de nieuwe script.
Ik had de string verkeerd geplaatst en wat aangepast op het regel .

$sql = sprintf("INSERT INTO `registratie` (`email`, `Voornaam`, `Achternaam`, `Woonplaats`, `Leeftijd`) VALUES ('%s', '%s', '%s', '%s', '%s')",
mysql_real_escape_string($_POST['email']), ($_POST['Voornaam']), ($_POST['Achternaam']), ($_POST['Woonplaats']), ($_POST[


Code:
<html>
	<head>
		<title>registratie</title>
	</head>
	<body>
<?php
	if (isset($_POST['email'])) 
	{
		$con = mysql_connect('localhost', 'root', 'root');
		if (!$con) 
		{
			die("Can not connect: " . mysql_error());
		}

		mysql_select_db("registratie");

		$sql = sprintf("INSERT INTO `registratie` (`email`, `Voornaam`, `Achternaam`, `Woonplaats`, `Leeftijd`) VALUES ('%s', '%s', '%s', '%s', '%s')",
					   mysql_real_escape_string($_POST['email']), ($_POST['Voornaam']), ($_POST['Achternaam']), ($_POST['Woonplaats']), ($_POST['Leeftijd']));

		mysql_query($sql, $con);

		mysql_close($con);
	}
?>							

		<style type="text/css">
div {
	border-bottom:1px solid #efefef;
	margin: 10px;
	padding-bottom; 10px;
	width: 260px;}
title {
	float: left;	
	width: 100px;
	text-align: right;
	padding-right: 10px;}
radio-buttons label {
	float: none;}
submit{
	text-align: right;}
input{
	float: right;}
select{
	float: right;}
		</style>
	

<form action ="registratie.php" method="post">
	<div>
		<label for="email"clas="title">E-mail:</label>
		<input type="text" id="email" name="email"/>
	</div>
	<div>
		<label for="Voornaam"clas="title">Voornaam:</label>
		<input type="text" id="Voornaam" name="Voornaam"/>
	</div>
	<div>
		<label for="Achternaam"clas="title">Achternaam:</label>
		<input type="text" id="Achternaam" name="Achternaam"/>
	</div>
	<div>
		<label for="Woonplaats"clas="title">Woonplaats:</label>
		<input type="text" id="Woonplaats" name="Woonplaats"/>
	</div>
	<div>
		<label for="Leeftijd"clas="title">Leeftijd:</label>	
		<select type="text" id="leeftijf" name="Leeftijd"/>
	  		<option value="16">16</option>
	  		<option value="17">17</option>
	  		<option value="18">18</option>
	  		<option value="19">19</option/>
		</select>
	</div>
		<input type="submit" value="Verzenden"> <input type="reset" value="Reset!"/>
	</div>
</form>
</body>
</html>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan