Как будет выглядеть следующий запрос - MySQL
Формулировка задачи:
Помогите плз, очень нужна помощь.
Таблица 1 НАИМЕНОВАНИЯ:
id name
1 знач1
2 знач2
Таблица 2 КАТЕГОРИИ:
id cat
1 кат1
2 кат2
Таблица 3 КАТ-НАИМ:
id idname idcat
1 idзнач1 idкат2
2 idзнач2 idкат1
Когда я добавляю новую строку (внимание таблицы еще пусты кроме КАТЕГОРИИ) для таблицы НАИМЕНОВАНИЯ и выбираю категорию (заполнены), мне нужен такой запрос который бы добавлял строку в таблицу НАИМЕНОВАНИЯ а таблица КАТ-НАИМ заполнялась соответствующим образом, айди добавленного товара соотвествовал айди категории и все это будет хранится в третьей таблице. Как я читал остальные варианты более геморные, т.к. предполагается, что 1 товар может относится к нескольким категориям
Решение задачи: «Как будет выглядеть следующий запрос»
textual
Листинг программы
$query = "INSERT INTO `НАИМЕНОВАНИЯ ` (`name`) VALUES ('знач1')"; mysqli_query($dbc, $query) or die('error'); $query = "SELECT LAST_INSERT_ID()"; // последний вставленный ID автоинкрементом, за текущую сессию $data = mysqli_query($dbc, $query) or die('error'); $row = mysqli_fetch_array($data); $id = $row['LAST_INSERT_ID()']; $query = "INSERT INTO `КАТ-НАИМ` (`idзнач1`,`idкат2`) VALUES ('$id', 'idкат2')"; // id выбранной категории вы по идее знаете у себя в коде, если нет - нужно сделать дополнительно запрос, перед этим mysqli_query($dbc, $query) or die('error');
Объяснение кода листинга программы
- Создается переменная
$query
с запросом на вставку данных в таблицуНАИМЕНОВАНИЯ
- Запрос на вставку данных в таблицу
КАТ-НАИМ
с использованием значения$id
из предыдущего запроса - Выполнение запроса с помощью функции
mysqli_query
с подключением$dbc
- Проверка успешности выполнения запроса с помощью оператора
or die
- Выполнение запроса на получение последнего вставленного ID с помощью функции
LAST_INSERT_ID
- Получение результата запроса в виде массива с помощью функции
mysqli_fetch_array
- Сохранение значения
LAST_INSERT_ID
в переменную$id
- Выполнение запроса на вставку данных в таблицу
КАТ-НАИМ
с использованием значений$id
иidкат2
- Проверка успешности выполнения запроса с помощью оператора
or die
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д