Нужна помощь с составлением MySQL запроса
- Parazit00
- Сообщения: 32
- Зарегистрирован: 04 мар 2024, 19:21
- Имя: Артём
- Откуда: Казахстан, Тараз
- Контактная информация:
Нужна помощь с составлением MySQL запроса
Здравствуйте!
Нужна помощь с составлением MySQL запроса.
Задача
1 - Имеем сущность Заказ [25] в сущности имеем поле Код заказа [214]
2 - Имеем сущность Склад [29] в сущности имеем поле Код заказа [265]
Нужно их сравнить и если код одинаковый то изменить статус на поступил в сущность Заказ [25] в поле список [217] номер статуса [75]
Заранее благодарен за любую помощь
Нужна помощь с составлением MySQL запроса.
Задача
1 - Имеем сущность Заказ [25] в сущности имеем поле Код заказа [214]
2 - Имеем сущность Склад [29] в сущности имеем поле Код заказа [265]
Нужно их сравнить и если код одинаковый то изменить статус на поступил в сущность Заказ [25] в поле список [217] номер статуса [75]
Заранее благодарен за любую помощь
- Parazit00
- Сообщения: 32
- Зарегистрирован: 04 мар 2024, 19:21
- Имя: Артём
- Откуда: Казахстан, Тараз
- Контактная информация:
Re: Нужна помощь с составлением MySQL запроса
Пытаюсь сам сделать запрос, но пока не выходит
Код: Выделить всё
UPDATE app_entity_25
JOIN app_entity_29 ON app_entity_25.field_214 = app_entity_29.field_265
SET app_entity_25.field_217 = '[75]'
WHERE app_entity_25.field_214 = app_entity_29.field_265
AND app_entity_25.field_217 <> '[75]';
- support
- Техническая поддержка
- Сообщения: 9008
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Нужна помощь с составлением MySQL запроса
Попробуйте так:
Код: Выделить всё
update app_entity_25 set app_entity_25.field_217 = '[75]' where EXISTS(select id from app_entity_29 where app_entity_25.field_214 = app_entity_29.field_265)
- Parazit00
- Сообщения: 32
- Зарегистрирован: 04 мар 2024, 19:21
- Имя: Артём
- Откуда: Казахстан, Тараз
- Контактная информация:
Re: Нужна помощь с составлением MySQL запроса
Возможно, я что-то делаю неправильно. Вот как у меня в данный момент все выглядит.
2 - Теперь, когда товар поступает на склад, его добавляют, и только после этого меняется статус в заказе на 'Поступил'.
Появляется ошибка.
Возможно, это из-за того, что я использую список? Может быть, нужно просто вставлять готовый текст в поле? Например, 'Поступил на склад'.- Parazit00
- Сообщения: 32
- Зарегистрирован: 04 мар 2024, 19:21
- Имя: Артём
- Откуда: Казахстан, Тараз
- Контактная информация:
Re: Нужна помощь с составлением MySQL запроса
Я не уверен, делаю ли я правильно, но мне удалось сравнивать данные, и если они одинаковые, то в поле добавляется тот же код. Теперь я буду дальше размышлять, как отправить статус в другую сущность.
Прошу не ругаться сильно, я только начал изучать и пробовать реализовывать свои идеи.- Parazit00
- Сообщения: 32
- Зарегистрирован: 04 мар 2024, 19:21
- Имя: Артём
- Откуда: Казахстан, Тараз
- Контактная информация:
Re: Нужна помощь с составлением MySQL запроса
Если кто готов помочь за вознаграждение, прошу отпишитесь. 100% кто-то да делал уже такое и использует. Я просто немного не могу разобраться, как правильно тут сделать запрос.
Просто в документации очень мало примеров, и я сейчас просто, скорее всего, что-то делаю не так, из-за этого у меня не работает то, что я пытаюсь сделать.
Я так думаю, я не туда вставляю запрос.
Просто в документации очень мало примеров, и я сейчас просто, скорее всего, что-то делаю не так, из-за этого у меня не работает то, что я пытаюсь сделать.
Я так думаю, я не туда вставляю запрос.
-
- Сообщения: 2415
- Зарегистрирован: 14 окт 2020, 09:13
- Имя: Ruslan
- Откуда: Moscow
- Контактная информация:
Re: Нужна помощь с составлением MySQL запроса
зачем использовать поле MySQL запрос? тем более с помошью него в принципе не решить вашу задачу это поле поиска, а не внесения данных в базу данных
используйте поле php! или лучше даже автоматизацию - пользовательский php
используйте поле php! или лучше даже автоматизацию - пользовательский php
- Parazit00
- Сообщения: 32
- Зарегистрирован: 04 мар 2024, 19:21
- Имя: Артём
- Откуда: Казахстан, Тараз
- Контактная информация:
Re: Нужна помощь с составлением MySQL запроса
Вот это поле использовать ? Так вроде бы нашел нужное
Код: Выделить всё
try {
$pdo = new PDO('mysql:host=хост_базы_данных;dbname=имя_базы_данных', 'пользователь', 'пароль');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "update app_entity_25
set app_entity_25.field_217 = '75'
where EXISTS
(select id from app_entity_29 where app_entity_25.field_214 = app_entity_29.field_265)";
$stmt = $pdo->prepare($sql);
$stmt->execute();
} catch(PDOException $e) {
// Обработка ошибки, например, логирование или отправка уведомления администратору
}
Последний раз редактировалось Parazit00 09 мар 2024, 23:12, всего редактировалось 1 раз.
- Parazit00
- Сообщения: 32
- Зарегистрирован: 04 мар 2024, 19:21
- Имя: Артём
- Откуда: Казахстан, Тараз
- Контактная информация:
Re: Нужна помощь с составлением MySQL запроса
Немного разобрался со статусами. Нужно было убрать скобки [75], чтобы стало вот так 75.
Сразу в двух местах сделал изменения статуса. Если код не найдет статус, будет установлено значение "Потеряшка"
Наглядный пример как стало .
Код: Выделить всё
try {
$pdo = new PDO('mysql:host=хост_базы_данных;dbname=имя_базы_данных', 'пользователь', 'пароль');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "UPDATE app_entity_25
SET app_entity_25.field_217 = '75'
WHERE EXISTS
(SELECT id FROM app_entity_29 WHERE app_entity_25.field_214 = app_entity_29.field_265)";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$sql2 = "UPDATE app_entity_29
SET app_entity_29.field_267 = '90'
WHERE EXISTS
(SELECT id FROM app_entity_25 WHERE app_entity_25.field_214 = app_entity_29.field_265)";
$stmt2 = $pdo->prepare($sql2);
$stmt2->execute();
} catch(PDOException $e) {
// Обработка ошибки, например, логирование или отправка уведомления администратору
}
Наглядный пример как стало .
- support
- Техническая поддержка
- Сообщения: 9008
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Нужна помощь с составлением MySQL запроса
Только повторно подключаться к базе нет необходимости.
Достаточно выполнить db_query вместо $pdo
Достаточно выполнить db_query вместо $pdo
Код: Выделить всё
db_query($sql);