voor een hobbyprojectje ben ik wederom bezig met een Shopping Cart, die de bestelling doorgeeft in de database. Nu zit het probleem niet in de query op de website, maar in de database zelf. Ik krijg de volgende foutmelding: Cannot add or update a child row: a foreign key constraint fails.
Even ter uitleg, ik heb twee tabellen, in de eerste zitten de persoonlijke gegevens van de bestelling met orderar en in de tweede tabel zit het ordernr, productnr en hoeveelheid.
Dit is hoe de tabel eruit ziet.
CREATE TABLE `Bestellingdetails` (
`ordernr` int(11) NOT NULL,
`voornaam` varchar(255) NOT NULL,
`achternaam` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`telnr` int(20) NOT NULL,
`straatnaam` varchar(255) NOT NULL,
`huisnummer` int(9) NOT NULL,
`postcode` varchar(6) NOT NULL,
`plaats` int(255) NOT NULL,
`besteldatum` datetime NOT NULL DEFAULT current_timestamp(),
`status` varchar(255) NOT NULL,
PRIMARY KEY (`ordernr`)
) ENGINE=InnoDB DEFAULT CHARSET=latinNOTE: Ik heb auto increment hier uit ordernr gehaald.
En de andere:
CREATE TABLE `Bestellingproduct` (
`ordernr` int(11) NOT NULL,
`productnr` int(11) NOT NULL,
`hoeveelheid` int(11) NOT NULL,
KEY `productnr` (`productnr`),
KEY `ordernr` (`ordernr`),
CONSTRAINT `Bestellingproduct_ibfk_1` FOREIGN KEY (`productnr`) REFERENCES `Producten` (`productnr`),
CONSTRAINT `Bestellingproduct_ibfk_2` FOREIGN KEY (`ordernr`) REFERENCES `Bestellingdetails` (`ordernr`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1En tot slot de query in php:
$voornaam = $_POST["voornaam"];
$achternaam = $_POST["achternaam"];
$email = $_POST["email"];
$telnr = $_POST["telnr"];
$straatnaam = $_POST["straatnaam"];
$huisnummer = $_POST["huisnummer"];
$postcode = $_POST["postcode"];
$plaats = $_POST["plaats"];
if(isset($_POST['submit'])){
$sql="INSERT INTO Bestellingdetails (voornaam,achternaam,email,telnr,straatnaam,huisnummer,postcode,plaats,status) VALUES ('$voornaam','$achternaam','$email','$telnr','$straatnaam','$huisnummer','$postcode','$plaats','Bestelling ontvangen')";
if (mysqli_query($connectie, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($connectie);
}
foreach ($_SESSION["cart_item"] as $item){
$hoeveelheid=$item['quantity'];
$productnr=$item["productnr"];
$query="INSERT INTO Bestellingproduct (productnr,hoeveelheid) VALUES ('$productnr','$hoeveelheid')";
if (mysqli_query($connectie, $query)) {
echo "New record created successfully";
} else {
echo "Error: " . $query . "<br>" . mysqli_error($connectie);
}
}
}Hopelijk kan een van jullie het probleem vinden.
Dank alvast