Я сделал базу данных рецептов, она состоит из; имя рецепта, идентификационный номер, ингредиенты, подготовка, изображение и т. д. После этого я создал сценарий 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>";
Задача ещё не решена.
Других решений пока нет …