[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка записей на существование
Страницы: 1, 2
Savin
Добрый день.
Есть массив который записывается в базу ежедневно.
В массиве данные одни и те же, но строки могут добавляться или удаляться.

Вопрос:
как записывать только новые данные в базу?.

Пробовал делать поле дата уникальным, но тогда если в одну секунду будет две строки, одна не запишется получатся (
Savin
ошибка
Valick
Слишком мало информации.
Что за массив? Зачем его надо записывать в базу? Почему нельзя работать с базой в реальном времени? Непонятно.

_____________
Стимулятор ~yoomoney - 41001303250491
Valick
Цитата (Savin @ 16.04.2020 - 16:09)
добавлять уникальный ключ каждой строке, типа uniqid() и сделать это поле uniq в базе.

но не знаю верный ли этот подход dry.gif

однозначно не верный
уникальный ключ там уже есть - это идентификатор строки

_____________
Стимулятор ~yoomoney - 41001303250491
Savin
Цитата (Valick @ 16.04.2020 - 17:19)
Слишком мало информации.
Что за массив? Зачем его надо записывать в базу? Почему нельзя работать с базой в реальном времени? Непонятно.

данные приходят post от клиента
Savin
Цитата (Valick @ 16.04.2020 - 17:21)
Цитата (Savin @ 16.04.2020 - 16:09)
добавлять уникальный ключ каждой строке, типа uniqid() и сделать это поле uniq в базе.

но не знаю верный ли этот подход dry.gif

однозначно не верный
уникальный ключ там уже есть - это идентификатор строки

сорри. да. я как раз наоборот бы сделал biggrin.gif
Valick
Цитата (Savin @ 16.04.2020 - 16:24)
данные приходят post от клиента

у меня нет времени вас пытать калёным железом, совать иголки под ногти и тд
покажите структуру массива
покажите структуру БД
укажите связь по которой соотносится строка из массива с записью в БД
что есть в БД такого чего нет в массиве?
почему нельзя полностью удалить БД и залить туда всё что в массиве?

вобщем чем больше информации, тем лучше

_____________
Стимулятор ~yoomoney - 41001303250491
Savin
Цитата (Valick @ 16.04.2020 - 17:43)
Цитата (Savin @ 16.04.2020 - 16:24)
данные приходят post от клиента

у меня нет времени вас пытать калёным железом, совать иголки под ногти и тд
покажите структуру массива
покажите структуру БД
укажите связь по которой соотносится строка из массива с записью в БД
что есть в БД такого чего нет в массиве?
почему нельзя полностью удалить БД и залить туда всё что в массиве?

вобщем чем больше информации, тем лучше

попробую описать подробнее

$data = json_decode($_POST['data'], 1); //пришли данные с сервиса

//перебираю и записываю массив в базу

for ($i = 0; $i < count($data); $i++){
$query = mysqli_query($link, "INSERT INTO `stat` (`name`, `model`, `date`) VALUES ('".$data[$i]["name"]."','".$data[$i]["model"]."','".$data[$i]["date"]."')");
}

вот на этом этапе, и возник вопрос:
такой набор данных приходит ежедневно. скажем 1000 строк. Записи одни и те же, а может и добавиться десяток строк за день.
НО, я уже записал эту 1000 строк в базу, и мне нужно записать только новые строки

twin
Сейчас придет злой Valick и наругает за запрос в цикле)))

Сделай составной уникальный индекс и заюзай IGNORE


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Savin
Цитата (twin @ 17.04.2020 - 09:36)
Сейчас придет злой Valick и наругает за запрос в цикле)))

Сделай составной уникальный индекс и заюзай IGNORE

спасибо.
IGNORE юзаю. здесь просто тестовый пример привел, для понимания сути вопроса
twin
Так а в чем вопрос тогда, если юзаешь. Что не получается?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
sergeiss
Цитата (Savin @ 17.04.2020 - 09:27)
вот на этом этапе, и возник вопрос:
такой набор данных приходит ежедневно. скажем 1000 строк. Записи одни и те же, а может и добавиться десяток строк за день.
НО, я уже записал эту 1000 строк в базу, и мне нужно записать только новые строки

А если строк МЕНЬШЕ, чем было в БД, что делать надо? Удалить ненужные?
Кроме этих условных 1000 строк есть что-то в таблице или только эти строки?

Если только эти строки, то проще удалить всё и записать с нуля. Если не только эти строки, то давай более подробное описание алгоритма. В зависимости от него будут разные решения.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Valick
sergeiss, не пойму, может я как-то не так спрашиваю? Вроде даже по пунктам расписал, бери отвечай даже думать не надо, ан нет(( Может у тебя получится достучаться.


_____________
Стимулятор ~yoomoney - 41001303250491
sergeiss
Цитата (Valick @ 17.04.2020 - 15:54)
Может у тебя получится достучаться.

Да я и не собираюсь "достукиваться" smile.gif Если ему надо, то ответит. Если ему не надо, то не ответит.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Savin
Цитата (sergeiss @ 17.04.2020 - 13:26)
Цитата (Savin @ 17.04.2020 - 09:27)
вот на этом этапе, и возник вопрос:
такой набор данных приходит ежедневно. скажем 1000 строк. Записи одни и те же, а может и добавиться десяток строк за день.
НО, я уже записал эту 1000 строк в базу, и мне нужно записать только новые строки

А если строк МЕНЬШЕ, чем было в БД, что делать надо? Удалить ненужные?
Кроме этих условных 1000 строк есть что-то в таблице или только эти строки?

Если только эти строки, то проще удалить всё и записать с нуля. Если не только эти строки, то давай более подробное описание алгоритма. В зависимости от него будут разные решения.

Если пришло меньше строк, и они такие же как были, делать ничего не надо. Так как такие строки уже есть.
В таблице только эти строки.
Удалить нельзя, так как те строки которые уже записаны, должны оставаться в бд
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.