Проблемы с вставкой данных в базу данных

Я сделал базу данных рецептов, она состоит из; имя рецепта, идентификационный номер, ингредиенты, подготовка, изображение и т. д. После этого я создал сценарий php и html, чтобы можно было искать в данных (например, ужин со временем подготовки менее 45 минут). Нет, я работаю над сценарием php для вставки новых рецептов. Я могу вставить $ sql1. Но есть проблемы с sql2 и sql4. Проблемы с идентификатором auto_increment ($ IDGerecht). И с отношением ребенка / родителя (sql2 и sql4).
На данный момент я получаю ошибку:

Could not enter data retval 2: Cannot add or update a child row: a foreign key constraint fails (`recepten`.`benodigdheid`, CONSTRAINT `benodigdheid_ibfk_1` FOREIGN KEY (`ID`) REFERENCES `gerecht` (`ID`))

Скрипт создания:

    CREATE TABLE Gerecht
(ID      INT(3)   AUTO_INCREMENT     NOT NULL,
gerechtnaam     VARCHAR(35)    NOT NULL,
personen  NUMERIC(2)    NOT NULL,
categorie  VARCHAR(25)  NOT NULL,
bereidingstijd  NUMERIC(3)     NOT NULL,
bereidingswijze   TEXT   NOT NULL,
plaatje      VARCHAR(250)      NOT NULL,
PRIMARY KEY (ID)
);

CREATE TABLE Benodigdheid
(IDbenodigdheid    INT(3) AUTO_INCREMENT   NOT NULL,
ID    INT(3)     NOT NULL,
benodigdheden     VARCHAR(35)   NOT NULL,
PRIMARY KEY (IDbenodigdheid, benodigdheden),
FOREIGN KEY (ID) REFERENCES Gerecht (ID)
);

CREATE TABLE Eenheid
(eenheidnaam     VARCHAR(12)    NOT NULL,
PRIMARY KEY (eenheidnaam)
);

CREATE TABLE Product
(ingredientnaam     VARCHAR(35)    NOT NULL,
eenheidnaam     VARCHAR(12),
PRIMARY KEY (ingredientnaam),
FOREIGN KEY (eenheidnaam) REFERENCES Eenheid (eenheidnaam)
);

CREATE TABLE Ingredient
(IDingredient    INT(3)  AUTO_INCREMENT  NOT NULL,
ID    INT(3)       NOT NULL,
ingredientnaam     VARCHAR(35)    NOT NULL,
hoeveelheid      NUMERIC(4)    NOT NULL,
PRIMARY KEY (IDingredient, ingredientnaam),
FOREIGN KEY (ID) REFERENCES Gerecht (ID),
FOREIGN KEY (ingredientnaam) REFERENCES Product (ingredientnaam)
);

PHP-код для вставки данных:

$sql1="INSERT INTO Gerecht ( gerechtnaam, personen, categorie, bereidingstijd, bereidingswijze, plaatje)
VALUES ('$gerechtnaam','$personen','$categorie','$bereidingstijd','$bereidingswijze','$plaatje')";
$IDGerecht=mysql_insert_id();

$sql2="INSERT INTO Benodigdheid (ID, benodigdheden)
VALUES ($IDGerecht, '$benodigdheden')";
$sql3="INSERT INTO Product (ingredientnaam, eenheidnaam)
VALUES ('$ingredientnaam1', '$eenheid1')";
$sql4="INSERT INTO Ingredient (ID, ingredientnaam, hoeveelheid)
VALUES ($IDGerecht,'$ingredientnaam1', '$hoeveelheid1')";$retval1 = mysqli_query($db, $sql1 );
if(! $retval1 )
{
die('Could not enter data retval 1: ' . mysqli_error($db));
}
echo "Entered data retval1 successfully\n</br>";

$retval2 = mysqli_query($db, $sql2 );
if(! $retval2 )
{
die('Could not enter data retval 2: ' . mysqli_error($db));
}
echo "Entered data retval2 successfully\n</br>";

$retval3 = mysqli_query($db, $sql3 );
if(! $retval3 )
{
die('Could not enter data retval 3: ' . mysqli_error($db));
}
echo "Entered data retval3 successfully\n</br>";

$retval4 = mysqli_query($db, $sql4 );
if(! $retval4 )
{
die('Could not enter data retval 4: ' . mysqli_error($db));
}
echo "Entered data retval4 successfully\n</br>";

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector