SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 10.04.2018 22:38:27

pengvin07
Участник
Зарегистрирован: 10.04.2018
Сообщений: 7

Cannot add or update a child row: a foreign key constraint fails

Доброе время суток. Являюсь полнейшим профаном в MySql  и  в базах данных собственно тоже.
Создавал базу данных и таблицы в mysql workbench.  Скопировал оттуда sql скрипт и вставил его в phpmyadmin.
Возникает ошибка при добавлении в таблицу product через php.

<?php
require_once 'php\connection.php'; // подключаем скрипт
 
if(isset($_POST['name']) && isset($_POST['composition']) && isset($_POST['composition'])){
 
    // подключаемся к серверу
    $link = mysqli_connect($host, $user, $password, $database)
        or die("Ошибка  "  . mysqli_errno ($link )+ " ". mysqli_error($link));
     
    // экранирования символов для mysql
    $name = htmlentities(mysqli_real_escape_string($link, $_POST['name']));
    $composition = htmlentities(mysqli_real_escape_string($link, $_POST['composition']));
     
     
    // создание строки запроса
    $query ="INSERT INTO `product` (`idProduct`, `composition`, `bulk`, `Kind_product_name`, `Shop_id`, `id_Packaging`, `name`, `exp_date`, `nutritional_val`, `energy_value`) VALUES (NULL, 'Всякая бяка', '350мл', 'Биойогурт', '4', '3', 'Йогурт', '12м', 'что-то', 'что-то');";
     
    // выполняем запрос
    $result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link));
    if($result)
    {
        echo "<span style='color:blue;'>Данные добавлены</span>";
    }
    // закрываем подключение
    mysqli_close($link);
}
?>



SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

-- -----------------------------------------------------
-- Schema dairy
-- -----------------------------------------------------

-- -----------------------------------------------------
-- Schema dairy
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `dairy` DEFAULT CHARACTER SET utf8 ;
USE `dairy` ;

-- -----------------------------------------------------
-- Table `dairy`.`additive`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `dairy`.`additive` (
  `idadditive` INT NOT NULL AUTO_INCREMENT,
  `Name_additive` VARCHAR(45) NULL,
  `kind_product_name` VARCHAR(45) NULL,
  PRIMARY KEY (`idadditive`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `dairy`.`Type_product`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `dairy`.`Type_product` (
  `id_Type` INT NOT NULL AUTO_INCREMENT,
  `kind_product_name` VARCHAR(45) NOT NULL,
  `Type_product_name` VARCHAR(45) NULL,
  `id_additive` INT NOT NULL,
  PRIMARY KEY (`id_Type`, `kind_product_name`),
  INDEX `additive_idx` (`id_additive` ASC),
  CONSTRAINT `additive`
    FOREIGN KEY (`id_additive`)
    REFERENCES `dairy`.`additive` (`idadditive`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `dairy`.`ADDRESS`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `dairy`.`ADDRESS` (
  `id_shop` INT UNSIGNED NOT NULL,
  `Country` VARCHAR(45) NULL,
  `City` VARCHAR(150) NULL,
  `Street` VARCHAR(45) NULL,
  `building` VARCHAR(45) NULL,
  PRIMARY KEY (`id_shop`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `dairy`.`Shops`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `dairy`.`Shops` (
  `idShops` INT UNSIGNED NOT NULL,
  `Shop_name` VARCHAR(45) NULL,
  PRIMARY KEY (`idShops`),
  CONSTRAINT `Address`
    FOREIGN KEY (`idShops`)
    REFERENCES `dairy`.`ADDRESS` (`id_shop`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `dairy`.`packaging`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `dairy`.`packaging` (
  `id_packaging` INT NOT NULL,
  `packaging_name` VARCHAR(45) NULL,
  PRIMARY KEY (`id_packaging`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `dairy`.`Product`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `dairy`.`Product` (
  `idProduct` INT NOT NULL AUTO_INCREMENT,
  `composition` VARCHAR(45) NULL,
  `bulk` VARCHAR(45) NULL,
  `Kind_product_name` VARCHAR(45) NULL,
  `Shop_id` INT UNSIGNED NOT NULL,
  `id_Packaging` INT NOT NULL,
  `name` VARCHAR(255) NULL,
  PRIMARY KEY (`idProduct`),
  UNIQUE INDEX `idProduct_UNIQUE` (`idProduct` ASC),
  INDEX `Shop_idx` (`Shop_id` ASC),
  INDEX `Packaging_idx` (`id_Packaging` ASC),
  CONSTRAINT `Type_product`
    FOREIGN KEY (`Kind_product_name`)
    REFERENCES `dairy`.`Type_product` (`kind_product_name`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `Shop`
    FOREIGN KEY (`Shop_id`)
    REFERENCES `dairy`.`Shops` (`idShops`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `Packaging`
    FOREIGN KEY (`id_Packaging`)
    REFERENCES `dairy`.`packaging` (`id_packaging`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

USE `dairy` ;

-- -----------------------------------------------------
--  routine1
-- -----------------------------------------------------

DELIMITER $$
USE `dairy`$$
$$

DELIMITER ;

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
 

Помогите исправить ошибку,пожалуйстаsmile

Неактивен

 

#2 10.04.2018 23:02:02

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Cannot add or update a child row: a foreign key constraint fails

Вы пытаетесь вставить запись втаблицу product, которая ссылается на другие таблицы, а они пустые, судя по всему.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 10.04.2018 23:59:21

pengvin07
Участник
Зарегистрирован: 10.04.2018
Сообщений: 7

Re: Cannot add or update a child row: a foreign key constraint fails

deadka написал:

Вы пытаетесь вставить запись втаблицу product, которая ссылается на другие таблицы, а они пустые, судя по всему.

Дело в том ,что все таблицы заполнены.

Неактивен

 

#4 11.04.2018 00:06:30

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Cannot add or update a child row: a foreign key constraint fails

Ну может и заполнены, а точно ли там нужные данные..

Вот три ссылки
`Kind_product_name`  `Type_product` (`kind_product_name`) вставляем 'Биойогурт'
`Shop_id`                  `Shops` (`idShops`)                           вставляем 4
`id_Packaging`           `packaging` (`id_packaging`)              вставляем 3

точно ли в таблице `Type_product` есть поле `kind_product_name` со значением 'Биойогурт'?
Ну и тот же вопрос к idShops и ic_packaging


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 11.04.2018 20:46:49

pengvin07
Участник
Зарегистрирован: 10.04.2018
Сообщений: 7

Re: Cannot add or update a child row: a foreign key constraint fails

deadka написал:

Ну может и заполнены, а точно ли там нужные данные..

Вот три ссылки
`Kind_product_name`  `Type_product` (`kind_product_name`) вставляем 'Биойогурт'
`Shop_id`                  `Shops` (`idShops`)                           вставляем 4
`id_Packaging`           `packaging` (`id_packaging`)              вставляем 3

точно ли в таблице `Type_product` есть поле `kind_product_name` со значением 'Биойогурт'?
Ну и тот же вопрос к idShops и ic_packaging

Биойогрут был взят в качестве примера.
Если в product  добавляю записи из phpmyadmin  с помощью sql  запроса,то все проходит успешно.
Не знаю правильно ли я экспортировал.
Конечно же есть.
type_product


===База данных dairy

== Структура таблицы type_product

|------
|Столбец|Тип|Null|По умолчанию
|------
|//**id_Type**//|int(11)|Нет|
|//**kind_product_name**//|varchar(45)|Нет|
|Type_product_name|varchar(45)|Да|NULL
|id_additive|int(11)|Нет|
== Дамп данных таблицы type_product

|0|Молоко|Цельномолочный|1
|1|Кефир|Кисломолочный|1
|2|Йогурт питьевой|Кисломолочный|1
|3|Биойогурт|Кисломолочный|1
|4|Снежок|Кисломолочный|1
|5|Сметана|Кисломолочный|1
|6|Творог|Кисломолочный|1

 

shops
===База данных dairy

== Структура таблицы shops

|------
|Столбец|Тип|Null|По умолчанию
|------
|//**idShops**//|int(10)|Нет|
|Shop_name|varchar(45)|Да|NULL
== Дамп данных таблицы shops

|0|Молочный дворик
|1|asdfdasf
|2|роза
|3|Сад
|4|asdfdasf
 

packaging
===База данных dairy

== Структура таблицы packaging

|------
|Столбец|Тип|Null|По умолчанию
|------
|//**id_packaging**//|int(11)|Нет|
|packaging_name|varchar(45)|Да|NULL
== Дамп данных таблицы packaging

|0|Стеклянная тара
|1|Полиэтиленовая пленка
|2|Термоформованная тара
|3|Тетра Брик
|4|Пюр-пак
 

Неактивен

 

#6 11.04.2018 21:02:23

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Cannot add or update a child row: a foreign key constraint fails

Приложите пожалуйста дамп базы данных Вашей (и структура таблиц и данные).


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#7 11.04.2018 23:26:00

pengvin07
Участник
Зарегистрирован: 10.04.2018
Сообщений: 7

Re: Cannot add or update a child row: a foreign key constraint fails

-- phpMyAdmin SQL Dump
-- version 4.7.0
-- <a href="https://www.phpmyadmin.net/">https://www.phpmyadmin.net/</a>
--
-- Хост: 127.0.0.1
-- Время создания: Апр 11 2018 г., 22:23
-- Версия сервера: 5.7.17
-- Версия PHP: 7.1.3

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- База данных: `dairy`
--

-- --------------------------------------------------------

--
-- Структура таблицы `additive`
--

CREATE TABLE `additive` (
  `idadditive` int(11) NOT NULL,
  `Name_additive` varchar(45) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Дамп данных таблицы `additive`
--

INSERT INTO `additive` (`idadditive`, `Name_additive`) VALUES
(1, 'Добавок нет'),
(2, 'Варенье земляничное'),
(3, 'Варенье клубничное'),
(4, 'Варенье вишнёвое'),
(5, 'Варенье клубника банан'),
(6, 'Варенье манго маракуя');

-- --------------------------------------------------------

--
-- Структура таблицы `address`
--

CREATE TABLE `address` (
  `id_shop` int(10) UNSIGNED NOT NULL,
  `Country` varchar(45) DEFAULT NULL,
  `City` varchar(150) DEFAULT NULL,
  `Street` varchar(45) DEFAULT NULL,
  `building` varchar(45) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Дамп данных таблицы `address`
--

INSERT INTO `address` (`id_shop`, `Country`, `City`, `Street`, `building`) VALUES
(0, 'Россия', 'Москва', 'Забелина', '1А'),
(1, 'фва', 'фвыафыа', 'ыфафыафы', 'аыфафаф'),
(2, 'asd', 'asdas', 'asd', 'asd'),
(3, 'asd', 'asdas', 'asd', 'asd'),
(4, 'asd', 'asdas', 'asd', 'asd');

-- --------------------------------------------------------

--
-- Структура таблицы `packaging`
--

CREATE TABLE `packaging` (
  `id_packaging` int(11) NOT NULL,
  `packaging_name` varchar(45) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Дамп данных таблицы `packaging`
--

INSERT INTO `packaging` (`id_packaging`, `packaging_name`) VALUES
(0, 'Стеклянная тара'),
(1, 'Полиэтиленовая пленка'),
(2, 'Термоформованная тара'),
(3, 'Тетра Брик'),
(4, 'Пюр-пак');

-- --------------------------------------------------------

--
-- Структура таблицы `product`
--

CREATE TABLE `product` (
  `idProduct` int(11) NOT NULL,
  `composition` varchar(45) DEFAULT NULL,
  `bulk` varchar(45) DEFAULT NULL,
  `Kind_product_name` varchar(45) NOT NULL,
  `Shop_id` int(10) UNSIGNED DEFAULT NULL,
  `id_Packaging` int(11) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  `exp_date` varchar(5) NOT NULL,
  `nutritional_val` varchar(150) NOT NULL,
  `energy_value` varchar(150) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Дамп данных таблицы `product`
--

INSERT INTO `product` (`idProduct`, `composition`, `bulk`, `Kind_product_name`, `Shop_id`, `id_Packaging`, `name`, `exp_date`, `nutritional_val`, `energy_value`) VALUES
(1, NULL, NULL, 'Кефир', NULL, 1, 'asd', 'asda', 'asd', 'asdasd'),
(13, 'ккк3к', '333', 'Молоко', 1, 1, 'фафвафафа', '33', 'фафвафа', 'фафафыафаыфаф'),
(15, 'в', 'в', 'Молоко', 4, 3, 'в', 'вв', 'в', 'в'),
(16, 'в', 'вв', 'Молоко', 4, 3, 'вв', 'вв', 'в', 'в'),
(20, 'вd', 'вв', 'Биойогурт', 4, 3, 'вв', 'вв', 'в', 'в'),
(21, 'вd', 'вв', 'Биойогурт', 4, 3, 'вв', 'вв', 'в', 'в');

-- --------------------------------------------------------

--
-- Структура таблицы `shops`
--

CREATE TABLE `shops` (
  `idShops` int(10) UNSIGNED NOT NULL,
  `Shop_name` varchar(45) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Дамп данных таблицы `shops`
--

INSERT INTO `shops` (`idShops`, `Shop_name`) VALUES
(0, 'Молочный дворик'),
(1, 'asdfdasf'),
(2, 'роза'),
(3, 'Сад'),
(4, 'asdfdasf');

-- --------------------------------------------------------

--
-- Структура таблицы `type_product`
--

CREATE TABLE `type_product` (
  `id_Type` int(11) NOT NULL,
  `kind_product_name` varchar(45) NOT NULL,
  `Type_product_name` varchar(45) DEFAULT NULL,
  `id_additive` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Дамп данных таблицы `type_product`
--

INSERT INTO `type_product` (`id_Type`, `kind_product_name`, `Type_product_name`, `id_additive`) VALUES
(0, 'Молоко', 'Цельномолочный', 1),
(1, 'Кефир', 'Кисломолочный', 1),
(2, 'Йогурт питьевой', 'Кисломолочный', 1),
(3, 'Биойогурт', 'Кисломолочный', 1),
(4, 'Снежок', 'Кисломолочный', 1),
(5, 'Сметана', 'Кисломолочный', 1),
(6, 'Творог', 'Кисломолочный', 1);

--
-- Индексы сохранённых таблиц
--

--
-- Индексы таблицы `additive`
--
ALTER TABLE `additive`
  ADD PRIMARY KEY (`idadditive`);

--
-- Индексы таблицы `address`
--
ALTER TABLE `address`
  ADD PRIMARY KEY (`id_shop`);

--
-- Индексы таблицы `packaging`
--
ALTER TABLE `packaging`
  ADD PRIMARY KEY (`id_packaging`);

--
-- Индексы таблицы `product`
--
ALTER TABLE `product`
  ADD PRIMARY KEY (`idProduct`),
  ADD UNIQUE KEY `idProduct_UNIQUE` (`idProduct`),
  ADD KEY `Shop_idx` (`Shop_id`),
  ADD KEY `Packaging_idx` (`id_Packaging`),
  ADD KEY `Kind_product_name_UNIQUE` (`Kind_product_name`) USING BTREE;

--
-- Индексы таблицы `shops`
--
ALTER TABLE `shops`
  ADD PRIMARY KEY (`idShops`);

--
-- Индексы таблицы `type_product`
--
ALTER TABLE `type_product`
  ADD PRIMARY KEY (`id_Type`,`kind_product_name`),
  ADD KEY `additive_idx` (`id_additive`),
  ADD KEY `kind_product_name_UNIQUE` (`kind_product_name`) USING BTREE;

--
-- AUTO_INCREMENT для сохранённых таблиц
--

--
-- AUTO_INCREMENT для таблицы `additive`
--
ALTER TABLE `additive`
  MODIFY `idadditive` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;
--
-- AUTO_INCREMENT для таблицы `product`
--
ALTER TABLE `product`
  MODIFY `idProduct` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=22;
--
-- AUTO_INCREMENT для таблицы `type_product`
--
ALTER TABLE `type_product`
  MODIFY `id_Type` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=14;
--
-- Ограничения внешнего ключа сохраненных таблиц
--

--
-- Ограничения внешнего ключа таблицы `product`
--
ALTER TABLE `product`
  ADD CONSTRAINT `Packaging` FOREIGN KEY (`id_Packaging`) REFERENCES `packaging` (`id_packaging`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `Shop` FOREIGN KEY (`Shop_id`) REFERENCES `shops` (`idShops`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `Type_product` FOREIGN KEY (`Kind_product_name`) REFERENCES `type_product` (`kind_product_name`) ON DELETE NO ACTION ON UPDATE NO ACTION;

--
-- Ограничения внешнего ключа таблицы `shops`
--
ALTER TABLE `shops`
  ADD CONSTRAINT `Address` FOREIGN KEY (`idShops`) REFERENCES `address` (`id_shop`) ON DELETE NO ACTION ON UPDATE NO ACTION;

--
-- Ограничения внешнего ключа таблицы `type_product`
--
ALTER TABLE `type_product`
  ADD CONSTRAINT `additive` FOREIGN KEY (`id_additive`) REFERENCES `additive` (`idadditive`) ON DELETE NO ACTION ON UPDATE NO ACTION;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
 

Неактивен

 

#8 13.04.2018 00:52:06

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Cannot add or update a child row: a foreign key constraint fails

а при каком запросе возникает ошибка?
у вас скрипте прописан:
    $query ="INSERT INTO `product` (`idProduct`, `composition`, `bulk`, `Kind_product_name`, `Shop_id`, `id_Packaging`, `name`, `exp_date`, `nutritional_val`, `energy_value`) VALUES (NULL, 'Всякая бяка', '350мл', 'Биойогурт', '4', '3', 'Йогурт', '12м', 'что-то', 'что-то');";
или там другие значения?
к какой базе обращается скрипт?
к той, которая приведена в посте #7 (или там другие данные в таблицах)?

Неактивен

 

#9 13.04.2018 01:10:56

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Cannot add or update a child row: a foreign key constraint fails

Зачем в таблице product хранить текстовое значение `Kind_product_name`, когда можно использовать `id_Type`?

Если ответы на вопросы из предыдущего поста утвердительны, то сохранится ли ошибка, если в таблице product вместо `Kind_product_name` использовать `id_Type`?

Зачем в `type_product` первичный ключ из 2ух полей (`id_Type`,`kind_product_name`)? (у вас ведь `id_Type` автоинкрементный)

Неактивен

 

#10 13.04.2018 12:28:18

pengvin07
Участник
Зарегистрирован: 10.04.2018
Сообщений: 7

Re: Cannot add or update a child row: a foreign key constraint fails

vasya написал:

а при каком запросе возникает ошибка?
у вас скрипте прописан:
    $query ="INSERT INTO `product` (`idProduct`, `composition`, `bulk`, `Kind_product_name`, `Shop_id`, `id_Packaging`, `name`, `exp_date`, `nutritional_val`, `energy_value`) VALUES (NULL, 'Всякая бяка', '350мл', 'Биойогурт', '4', '3', 'Йогурт', '12м', 'что-то', 'что-то');";

При любом запросе  с "INSERT INTO" , перебрал уже все значения,которые содержатся в type_product.

vasya написал:

или там другие значения?
к какой базе обращается скрипт?
к той, которая приведена в посте #7 (или там другие данные в таблицах)?

Значения все те же , запрос идет к базе ,которая приведена в посте 7.

Отредактированно pengvin07 (13.04.2018 12:32:22)

Неактивен

 

#11 13.04.2018 12:40:37

pengvin07
Участник
Зарегистрирован: 10.04.2018
Сообщений: 7

Re: Cannot add or update a child row: a foreign key constraint fails

vasya написал:

Зачем в таблице product хранить текстовое значение `Kind_product_name`, когда можно использовать `id_Type`?

Дело в том,что преподаватель попросил сделать так чтобы обычный пользователь  мог найти в базе данных все йогурты и т.п. Без всяких костылей и т.п. По этому я сделал так.

vasya написал:

Если ответы на вопросы из предыдущего поста утвердительны, то сохранится ли ошибка, если в таблице product вместо `Kind_product_name` использовать `id_Type`?

Ошибка исчезла.

vasya написал:

Зачем в `type_product` первичный ключ из 2ух полей (`id_Type`,`kind_product_name`)? (у вас ведь `id_Type` автоинкрементный)

Оставил только  id_Type первичным.

Отредактированно pengvin07 (13.04.2018 12:41:01)

Неактивен

 

#12 13.04.2018 12:46:35

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Cannot add or update a child row: a foreign key constraint fails

pengvin07 написал:

vasya написал:

Если ответы на вопросы из предыдущего поста утвердительны, то сохранится ли ошибка, если в таблице product вместо `Kind_product_name` использовать `id_Type`?

Ошибка исчезла.

значит скрипт или phpadmin неправильно передают кодировку

Неактивен

 

#13 13.04.2018 12:50:55

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Cannot add or update a child row: a foreign key constraint fails

pengvin07 написал:

vasya написал:

Зачем в таблице product хранить текстовое значение `Kind_product_name`, когда можно использовать `id_Type`?

Дело в том,что преподаватель попросил сделать так чтобы обычный пользователь  мог найти в базе данных все йогурты и т.п. Без всяких костылей и т.п. По этому я сделал так.

сделайте представление
CREATE VIEW `чтобы обычный пользователь  мог найти в базе данных все йогурты и т.п. Без всяких костылей и т.п.` AS ...

Неактивен

 

#14 13.04.2018 15:52:02

pengvin07
Участник
Зарегистрирован: 10.04.2018
Сообщений: 7

Re: Cannot add or update a child row: a foreign key constraint fails

vasya написал:

pengvin07 написал:

vasya написал:

Если ответы на вопросы из предыдущего поста утвердительны, то сохранится ли ошибка, если в таблице product вместо `Kind_product_name` использовать `id_Type`?

Ошибка исчезла.

значит скрипт или phpadmin неправильно передают кодировку

Скорее всего скрипт так-как сейчас все русские символы  добавляются в бд  как кракозябры.
Данный код решил проблему.

 mysqli_query($link,"SET NAMES 'utf8'");

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson