вторая база - глобальная удаленная, доступа к ней нет напрямую, данные принимается по протоколам в массивах. Вопрос именно группировки, при отправлении (само отправление уже реализовано).
Добрый день,
Подскажите пожалуйста, каким образом лучше сгруппировать данные по айди?
Есть таблица в базе, например:
Айди_района| айди магазина| название магазина|название отдела| и т.д.
Хотелось бы сгруппировать данные по айди_района, внести изменения например в название некоторых отделов и пакетом/массивом (каждым районом) отправить данные в другую базу. Другая база так устроена, что можно передать пакет/массив по району, как раз чтобы не делать сотни запросов к базе, т.е. в этом проблемы нет.
Суть в том, как лучше реализовать группировку? Получить из таблицы список айди_районов по GROUP BY, а далее вторым запросом выдёргивать данные из базы по этому списку районов - WHERE район=полученый район по GROUP BY, делать изменения, создавать массив и далее отправлять весь пакет (район).
Или сделать ORDER BY и далее уже в скрипте как-то обрабатывать?
sKaa ну если по Вашему примеру, то да, так ок.
Но если какой-то клиент не передастся из-за какого-либо таймаута при соединении с глобальной базой, или еще чего-либо, то по такой технологии мы его удалим, а он не передался.
Поэтому рассматривал удаление после удачной передачи каждого клиента, но это не верно имхо.
isvetlichniy ну а какая оптимизация? там просто берутся все клиенты select * и по обходу массива отправляются в глобальную базу с обновлениями.
Цитата:
2 лимонами пользователей и со 100К униками день - хватает значений по умолчанию
ну это трекер, там вроде бы иные задачи, а тут надо чтоб скрипт работал долго, да еще и sleep небольшой сделать видимо, чтобы не задёргать глобальную базу, хотя может и не нужно.
sKaa помечать это интересно, а можно по подробнее немного как бы это сделали?
Как вариант, еще пришел в голову, отправляем по 100, а в новую таблицу просто пишем/апдейтим айди клиента, при успшеной его отправке. И каждые 3 минуты запускаем скрипт отсылки клиентов, но который сначала читает последнее айди отправленного клиента из таблицы мониторинга, и после из основной таблицы берёт клиентов с айди => чем то которое указно в таблице мониторинга. Да?)
Только как бы второй запуск скрипта не наложился на первый.
Подскажите пожалуйста. У нас есть локальная база.
И глобальная база на удаленном сервере.
На локальной базе в таблице клиентов, находится грубо говоря более 1000 клиентов.
Нам нужно отправить информацию о каждом клиенте в глобальную базу из локальной.
На сервере локальной базы, кроном запускается скрипт, делает запрос к локальной базе, получаем нужные ID этих 1000 клиентов и информацию по ним, дальше в цикле while ($result = mysql_fetch_array($query)) идём по клиентам и отправляем информацию к глобальной базе по всем 1000 клиентам. С этим всё ок, когда клиентов мало.
Но когда их большое кол-во, то скрипт просто не успеет отработать всех 1000 клиентов. Наткнемся на максимальное время работы скрипта.
Каким образом можно это правильно реализовать? Нужно использовать многопоточность/многопроцессорно сть или надо делать какой-нибудь Крон менеджер или еще как-то?
armancho7777777 это да, благодарствую), от туда мой первый пример и был.
Просто не пойму как из пхп файла вернуть и получить переменную с помощью json_encode.
но если допустим у нас на странице 3 формы с таким айди, то "Спасибо..." мы получаем при субмите только на первую форму. А почему не работает когда субмитим вторую форму и третью? Можно ли сделать чтобы "Спасибо..." срабатывало на все формы у которых есть такой айди?
Допустим:
Можно ли по простому сделать проверку?, а именно:
Если мы передали переменные в 1.php ( 1.php это скрипт которые пишет данные в базу), и если удачно, то отдает переменную $ok со значением 1, и по логике мы пишем "Спасибо за комментарий".
А если 1 не получили, то вместо спасибо, пишем "Ошибка".
Так понимаю надо использоваться не ajax.Form , а ajax.Submit? Можно ли немного модифицировав именно пример выше, как-то это реализовать?
а нельзя ли попроще реализовать через onChange или что-то похожее onChange="javascript:select(document.form.имя_формы.options[document.form.имя_формы.selectedIndex].value); - это правда для поля типа SELECT нечто меняющее значение.
Но может быть по типу такого можно и решить с дублированием значения во все нужные поля text?