Скопируйте поля из представления MySQL в таблицу MySQL, используя PHP - PullRequest
0 голосов
/ 29 июня 2018

У меня есть представление, которое рассчитывает количество запланированных встреч за последние 30 дней, 365 дней и количество пропущенных встреч за последние 30 дней.

Мне нужно поместить эти данные в таблицу, чтобы я мог заполнить модуль отчетов (я думал, что смогу сделать это из представления, но, оказывается, я не могу).

Родительская таблица: клиент Детский стол: назначение Просмотр: всего Новая таблица: apt_total

В mysql я могу сделать вставку или обновление просто отлично, но когда я помещаю его в php, он не работает, как планировалось. Может быть 15-20 встреч для клиента в течение 30 дней, но я не хочу, чтобы в таблице apt_total было несколько записей, потому что тогда модуль отчетов выводит 15-20 разных промежуточных итогов. Я хотел бы сохранить его там, где в таблице apt_total столько строк, сколько у меня клиентов.

У всех таблиц есть поле «id», которое ссылается на клиентскую таблицу.

INSERT INTO apt_total (id, name, Last30days, Last365days, Alltime, NoShow) SELECT id, name, Last30days, Last365days, Alltime, NoShow from total3;

UPDATE apt_total, total3 SET apt_total.Last30days = total3.Last30days, apt_total.Last365days = total3.Last365days, apt_total.Alltime = total3.Alltime, apt_total.NoShow = total3.NoShow WHERE apt_total.id = total3.id;

ВОПРОС: Какой самый эффективный способ выполнить это в php?

Я занимаюсь этим более 24 часов, и я чувствую, что собираюсь взломать. Любая помощь будет принята с благодарностью.

PHP код:

function afterSave(&$record)
        {
            $app =& Dataface_Application::getInstance();
            $record = $app->getRecord();
            $sql = "INSERT INTO apt_total (id, name, Last30days, Last365days, Alltime, NoShow) SELECT id, name, Last30days, Last365days, Alltime, NoShow from total3";
            $res = xf_db_query($sql, df_db());
    }
...