Обновление таблицы через PHP или SQL?

Palmman

Новичок
Обновление таблицы через PHP или SQL?

Есть таблица в MySQL: id, name, status, lat, lon, desc, url
--//-- --//-- --//-- массив name, status, lat, lon

1)name, status в массиве может измениться, эти изменения надо применить к таблице.
2)Может измениться количество записей в массиве. Нужно добавить/удалить соответствующие записи в таблице.

Как сделать более правильно? Извлечь нужные поля из таблицы за один раз в массив и как-то сравнивать 2 массива при помощи PHP?
Или какой-то можно хитрый запрос написать, который сам все заменит?

Вероятно, сначала надо надо найти те записи, которые не встречаются в массиве и их удалить из таблицы.
Затем надо как-то обновить таблицу в соответствии с массивом,
Потом добавить записи, которых не хватает в таблице.

В PHP и SQL пока слабо разбираюсь, было бы не плохо увидеть более/менее определенный код.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Опиши, пожалуйста, задачу __понятно__ одним предложением.

-~{}~ 23.09.08 22:27:

Нужно добавить/удалить соответствующие записи в таблице
Какие, по твоим понятиям, записи будут "соответсвующими".

В PHP и SQL пока слабо разбираюсь, было бы не плохо увидеть более/менее определенный код.
phpfaq.ru/start
 

Фанат

oncle terrible
Команда форума
если массив является исчерпывающим набором данных, то проще ничего не проверять, а просто прибить таблицу и залить из массива заново.

Если слабо разбираешься, то лучше начинать не с этого, а с классики - форма-список, добавить-отредактировать-удалить
 

Palmman

Новичок
Какие, по твоим понятиям, записи будут "соответсвующими".
Добавить надо те, lon && lan которых не встречаются в таблице. убрать те, что не встречаются в массиве.

-~{}~ 24.09.08 00:57:

если массив является исчерпывающим набором данных
В таблице есть поля, которыех нет в массиве, это видно в первом посте.

Можно просто перезаписывать все поля из массива, отдельно определять недостающие/лишние стоки. Но хочется оптимизировать, т.е. перезаписывать только те поля, что отличаются.
 

duburlan

Новичок
первым запросом очисть таблицу - а вторым залей из массива все значения...

П.С. когда в массив добавляется новый элемент - id ему завадай сам...

П.П.С. только щас заметил что Фaнaт уже посоветовал подобный вариант))
 

Palmman

Новичок
Еще раз: В таблице есть поля, которых нет в массиве, поэтому очищать таблицу нельзя! Нужно обновлять поля name, status.
 

duburlan

Новичок
Если полей в таблице не очень много - почему бы в начале не прочесть всю таблицу в массив....
с этим массивом делать все что угодно - удалять элементы - править - вставлять новые.. а в конце уже обнулять таблицу и залить туда весь массив...
 
Сверху