Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

PHP Как сделать так чтобы данные он добавлял, а существующие записи он обновлял. СУБД - PHP-MyAdmin.

Назира Абдырасулова Ученик (222), закрыт 5 лет назад
Вот КОД - https://pastebin.com/KpqxNmSU
Как сделать так чтобы данные он добавлял, а существующие записи он обновлял. СУБД - PHP-MyAdmin. Возможно можно ON DUPLICATE KEY UPDATE. Только не знаю как?
Дополнен 5 лет назад
На фото видно что он поверх просто создаёт новые записи (((
Лучший ответ
Аглая Шниц Искусственный Интеллект (136847) 5 лет назад
как я понимаю, для ON DUPLICATE KEY UPDATE нужно нарушение первичного или уникального ключа.
первичный ключ, id, видать автоинкремент, так что не поможет.
можно попробовать навесить уникальность на тройку region-number-street и переписать запрос так:
INSERT INTO adress
(region,number,street,location,date)
VALUES
('$region','$number','$street','$location','$date')
ON DUPLICATE KEY UPDATE
location='$location',
date='$date'
Назира АбдырасуловаУченик (222) 5 лет назад
region - Это район. Может повторяться
number - Это номер дома. Может повторяться.
street - Это улица. Может повторяться
location - Локации возможно на них уникальность повесить
date - дата изменения тоже повторяется

Тогда как получится? ((
Аглая Шниц Искусственный Интеллект (136847) номер дома может, а вот "Пригородное, ул. Островского, 28" - вещь уникальная.
Остальные ответы
Imobilazer Искусственный Интеллект (222379) 5 лет назад
ON DUPLICATE KEY UPDATE будет работать если ты знаешь id (ключ) записи и вставляешь с таким же
Имхо рпоще попробовать выбрать существующую запись, если результат ноль строк то запрос сделать на вставку, иначе на обновление
Назира АбдырасуловаУченик (222) 5 лет назад
Не совсем поняла?
Как это кодом если можно (((
Imobilazer Искусственный Интеллект (222379) Не, сорян, ленива, я еще даже чаю не попил)
Назира АбдырасуловаУченик (222) 5 лет назад
Кстати и без id получилось. Просто поле сделала уникальным.
no name Мыслитель (6058) 5 лет назад
Через PHP проверять, есть ли в базе уже такой id / token / login / etc.
В случае, если нет - добавлять
В случае, если есть - перезаписывать какие-то нужные тебе данные

В чем именно заключается как таковая проблема? Непонимание того, как написать подобный код?
SQL феерически устарел. Есть куча интересных и удобных BSD. Почему не юзаете их, если хотите работать в PhpMyAdmin, к слову?
Назира АбдырасуловаУченик (222) 5 лет назад
Было бы хорошо на PHP код сделать. Ну к сожалению опыта и знаний не хватает. (((
no name Мыслитель (6058) Посмотрите в сторону какого-нибудь Redbean - помогу, самое-то для проектов междусобойчиков, а от чистого sql нужно отучиваться ( имхо (
Похожие вопросы