Страница 1 из 2
Нужна помощь с составлением MySQL запроса
Добавлено: 06 мар 2024, 10:28
Parazit00
Здравствуйте!
Нужна помощь с составлением MySQL запроса.
Задача
1 - Имеем сущность Заказ [25] в сущности имеем поле Код заказа [214]
2 - Имеем сущность Склад [29] в сущности имеем поле Код заказа [265]
Нужно их сравнить и если код одинаковый то изменить статус на поступил в сущность Заказ [25] в поле список [217] номер статуса [75]
Заранее благодарен за любую помощь
Re: Нужна помощь с составлением MySQL запроса
Добавлено: 06 мар 2024, 14:21
Parazit00
Пытаюсь сам сделать запрос, но пока не выходит
Код: Выделить всё
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]';
Re: Нужна помощь с составлением MySQL запроса
Добавлено: 06 мар 2024, 18:07
support
Попробуйте так:
Код: Выделить всё
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)
Re: Нужна помощь с составлением MySQL запроса
Добавлено: 06 мар 2024, 20:23
Parazit00
Возможно, я что-то делаю неправильно. Вот как у меня в данный момент все выглядит.

- Screenshot_1.png (5.01 КБ) 1927 просмотров
2 - Теперь, когда товар поступает на склад, его добавляют, и только после этого меняется статус в заказе на 'Поступил'.
Появляется ошибка.
Возможно, это из-за того, что я использую список? Может быть, нужно просто вставлять готовый текст в поле? Например, 'Поступил на склад'.
Re: Нужна помощь с составлением MySQL запроса
Добавлено: 07 мар 2024, 11:36
Parazit00
Я не уверен, делаю ли я правильно, но мне удалось сравнивать данные, и если они одинаковые, то в поле добавляется тот же код. Теперь я буду дальше размышлять, как отправить статус в другую сущность.

- Screenshot_6.png (8.06 КБ) 1890 просмотров
Прошу не ругаться сильно, я только начал изучать и пробовать реализовывать свои идеи.
Re: Нужна помощь с составлением MySQL запроса
Добавлено: 09 мар 2024, 21:09
Parazit00
Если кто готов помочь за вознаграждение, прошу отпишитесь. 100% кто-то да делал уже такое и использует. Я просто немного не могу разобраться, как правильно тут сделать запрос.
Просто в документации очень мало примеров, и я сейчас просто, скорее всего, что-то делаю не так, из-за этого у меня не работает то, что я пытаюсь сделать.
Я так думаю, я не туда вставляю запрос.
Re: Нужна помощь с составлением MySQL запроса
Добавлено: 09 мар 2024, 21:34
nruslan2
зачем использовать поле MySQL запрос? тем более с помошью него в принципе не решить вашу задачу это поле поиска, а не внесения данных в базу данных
используйте поле php! или лучше даже автоматизацию - пользовательский php
Re: Нужна помощь с составлением MySQL запроса
Добавлено: 09 мар 2024, 21:43
Parazit00
nruslan2 писал(а): 09 мар 2024, 21:34
зачем использовать поле MySQL запрос? тем более с помошью него в принципе не решить вашу задачу это поле поиска, а не внесения данных в базу данных
используйте поле php! или лучше даже автоматизацию - пользовательский php
Вот это поле использовать ?
Так вроде бы нашел нужное

- Screenshot_3.png (1 КБ) 1780 просмотров
Код: Выделить всё
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) {
// Обработка ошибки, например, логирование или отправка уведомления администратору
}
Статусы изменились, но теперь просто пустое поле.
Re: Нужна помощь с составлением MySQL запроса
Добавлено: 09 мар 2024, 23:04
Parazit00
Немного разобрался со статусами. Нужно было убрать скобки [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) {
// Обработка ошибки, например, логирование или отправка уведомления администратору
}
Сразу в двух местах сделал изменения статуса. Если код не найдет статус, будет установлено значение "Потеряшка"
Наглядный пример как стало .
Re: Нужна помощь с составлением MySQL запроса
Добавлено: 10 мар 2024, 08:24
support
Только повторно подключаться к базе нет необходимости.
Достаточно выполнить db_query вместо $pdo