Het volgende

Steeds als ik een naam invoer middels dit script:

<?php
$con = mysql_connect("localhost","xxx","xxx");
if (!$con)
{
die('Kan niet verbinden: ' . mysql_error());
}
mysql_select_db("c2zw", $con);
$sql="INSERT INTO personeel (id, Naam, HBHV)
VALUES
('$_POST[id]','$_POST[Naam]','$_POST[HBHV]')";
if (!mysql_query($sql,$con))
{
die('Fout: ' . mysql_error());
}
echo "1 record toegevoegd";
mysql_close($con)
?>
Krijg ik een duplicate error.
ik begrijp dat ik iets met het ID moet doen..
Mijn tabel heet personeel en heeft als tabellen
id, naam, hbhv, ingeklokt

de laatste "ingeklokt" moet met een ander php scriptje worden toegevoegd.

kan iemand mij vertellen wat ik verkeerd doe?
zet in je db ID op autoincrement

en haal die id dan uit je INSERT query
Als je SQL tutorials goed hebt doorgenomen, weet je dat het veld ID een unieke waarde moet zijn, en auto increment. Dit stel je in bij het maken van de tabel. Wanneer je dan gaat inserten, hoef je nooit het id mee te geven, dat genereert de database server zelf (mysql, mysqlite, postgresql e.d.).

Verder: Haal je variabelen buiten quotes, verbindingen sluiten is overbodig. En single quotes bij variabelen als post, het zijn geen constanten namelijk. Als je een wat groter projectje aangaat dan 2 pagina's, overweeg een "connect.php" bestand o.i.d. zodat je niet op elke pagina een verbinding hoeft te maken.


<?php
$con = mysql_connect("localhost","xxx","xxx");
if (!$con)
	{
	die('Kan niet verbinden: ' . mysql_error());
	}
else
{
	$select= mysql_select_db("c2zw", $con);
	if(!$select)
		{
		die('Kan geen database selecteren: '.mysql_error());
		}
	else
	{

		$sql="INSERT INTO personeel (Naam, HBHV)
		VALUES
		('".$_POST['id']."','". $_POST['Naam']."','".$_POST['HBHV']."')";
		if (!$result = mysql_query($sql))
		{
			die('Fout: ' . mysql_error());
		}
		else
		{
		echo "1 record toegevoegd";
		}
	}
}
?> 


Zoiets zou het moeten worden
Is id wel auto_increment?
@Afra: maak er dit maar van:

<?php
$con = mysql_connect("localhost", "xxx", "xxx");
if (!$con) {
echo 'Kan niet verbinden: ' . mysql_error();
} else {
$select = mysql_select_db("c2zw", $con);
if (!$select) {
echo 'Kan geen database selecteren: ' . mysql_error();
} else {

$query = "INSERT INTO personeel (Naam, HBHV)
VALUES
('" . mysql_real_escape_string($_POST['Naam']) . "','" . mysql_real_escape_string($_POST['HBHV']) . "')";
if (!$result = mysql_query($query)) {
echo 'Fout: ' . mysql_error();
} else {
echo "1 record toegevoegd";
}
}
}
?>
Super relaxed!

Ik heb even beter gelezen..
Auto_increment helpt een hoop :)

Dit is ook een goede oplossing!

<?php
$con = mysql_connect("localhost", "xxx", "xxx");
if (!$con) {
echo 'Kan niet verbinden: ' . mysql_error();
} else {
$select = mysql_select_db("c2zw", $con);
if (!$select) {
echo 'Kan geen database selecteren: ' . mysql_error();
} else {

$query = "INSERT INTO personeel (Naam, HBHV)
VALUES
('" . mysql_real_escape_string($_POST['Naam']) . "','" . mysql_real_escape_string($_POST['HBHV']) . "')";
if (!$result = mysql_query($query)) {
echo 'Fout: ' . mysql_error();
} else {
echo "1 record toegevoegd";
}
}
}
?>

Bedankt voor jullie support!

Forum topic mag dicht.
We sluiten hier geen topics ;)

graag gedaan, al had jezpur de finishing touch (was nog niet helemaal wakker, zoals je in ander topic kon lezen)

Reageren