значение метки из базы данных не отображается в списке собственных меток реагирования - PullRequest
0 голосов
/ 09 октября 2019

вот проблемы красная подсветка: проблемы (я думаю) синяя подсветка: работает правильно

и это текущая проблема, с которой я сталкиваюсь Текущая ситуация список меток не отображал значение метки результата выборки из таблицы базы данных

истинное представление списка меток должно быть таким введите описание изображения здесь пример: a - значение из результата выборкииз базы данных

после добавления этого $ fetch_label = array (); * выделение желтого цвета, как на изображении, которое я даю, показывает значение метки без категории, но другая метка, которую я добавил ранее, не показывала ее простопоказывает пустой ярлык, пожалуйста, помогите мне. мой полный предварительный просмотр кода

 elseif ($request == 'get_notifications') {
        if ($auth) {
            if (getdb()) {
                $db = pg_connect($conn_string);
                $get_notifications = pg_prepare($db, "get_notifications", "select n.*, coalesce(lbl.labelname, 'Uncategorized') as labelname from public.notifications n
                left join (
                    select * from public.notif_label nl
                    inner join public.label l on (nl.id_lbl = l.id and l.id_user = $1)
                ) lbl on (lbl.id_notif = n.id_notif)
                where n.userid = $2 AND n.isdeleted = false AND n.notificationdate >= DATE(NOW()) - INTERVAL '7' DAY 
                ORDER BY n.notificationdate desc");
                $get_notifications = pg_execute($db, "get_notifications", array($auth->id, $auth->id));
                $fetch_notif = pg_fetch_all($get_notifications);

                $map_date = array_map(function($o) { return substr($o['notificationdate'], 0, 10); }, $fetch_notif);
                $unique_date = array_unique($map_date);

                $fetch_label = array();
                $get_user_label = pg_prepare($db, "get_user_label", "SELECT id, labelname FROM public.label WHERE id_user = $1");
                $get_user_label = pg_execute($db, "get_user_label", array($auth->id));
                $label_result = pg_fetch_all($get_user_label);
                if ($label_result) {
                    array_push($fetch_label, $label_result);
                }

                array_push($fetch_label, array('id' => 9999, 'labelname' => 'Uncategorized'));
                $transformed_results = array();

                foreach ($unique_date as $header) {
                    $labelList = array();
                    foreach ($fetch_label as $label) {
                        $notifs = array_values(array_filter($fetch_notif, function($elem) use($header, $label){
                            return (substr($elem['notificationdate'], 0, 10) == $header && $elem['labelname'] == $label['labelname']);
                        }));
                        array_push($labelList, array('labelname' => $label['labelname'], 'expanded' => false, 'notifs' => $notifs));
                    }
                    array_push($transformed_results, array('key' => $header, 'expanded' => false, 'labelList' => $labelList));
                }

                $notifications = json_encode(array('notifications' => $transformed_results));
                pg_close();
                echo $notifications;
            } else {
                echo "Connection failed";
            }
        } else {
            echo "Not authorized";
        }
    }  
...