переназначить id

308
30 ноября 2017, 03:09

Всем добрый день!

Есть три таблицы в базе данных.

В первой лежат persons, во второй services, в третьей отношение МкМ services_to_persons.

Персоны имеют уникальный id который повышается как auto_increment. То же самое с services.

В services_to_persons лежат соотношения персон к сервисам. При этом к одному сервису может быть прикреплено множество персон и наоборот.

Я беру данные из БД, формирую json и отправляю в API.

Внутри json есть несколько массивов - в первом указанны все персоны в виде id + ФИО, во втором указанны все сервисы, а привязанные к ним гости указываются как подмассив id персон.

И все было бы здорово и хорошо работало, но тут оказалось, что внутри json id массива persons но может превышать 999. А из БД получаются куда как большие значения.

И задача, которая встала передо мной - переназначить id для массива персон, после получения из БД, и до создания json. И чего-то мне никак не приходит в голову, какой бы хитростью, что бы не писать громоздких циклов это сделать.

Может как-то на моменте получения из БД, сразу пересобрать массив persons?

UPD

На данный момент сделал такое решение - при получении из БД массива persons назначаю им новые id, а потом при записи в массив services->guests просто при помощи if сравниваю id из БД, со старым id персон из БД. Но это получается все же какой-то индусский код. Может есть более элегантные решения?

READ ALSO
Нелогичное поведение call_user_func_array

Нелогичное поведение call_user_func_array

Почему вот этот код:

250
SOAP добавить 2-ой input!

SOAP добавить 2-ой input!

Делаю сервис, который возвращает ответ в StringПроблема в том что, если я сделаю функцию с 1 инпутом и ввожу 1 инпут, то все работает, а когда хочу...

241
Запуск bat файла из PHP

Запуск bat файла из PHP

Здравствуйте дорогие друзья, очередной вопрос из серии "ИЗВРАЩЕНИЕ"Можно ли (если да то каким образом) можно запустить внешний

286
Форматирование стектрейса

Форматирование стектрейса

Очень раздражают плохочитабельные стектрейсыЯ бы хотел:

278