Проблема с вложенными функциями (VK API и запрос в базу)

206
14 июня 2018, 18:40

Передо мной стоит задача сделать двойную проверку: сверить полученные через VK API данные (группы, в которых пользователь админ) с данными из базы (записанные данные о полученных токенах групп), и для тех групп, в которых пользователь админ И получены токены вывести сообщение в выдаче групп, где пользователь админ (то есть возле каждой группы, которой есть токен, вывести сообщение, что токен уже получен (для ясности вывожу айпи группы)).

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

Я думаю, проблема в том, что выполненный запрос $stmt по какой-то причине возвращает только одно значение для одного пользователя, хотя в базе их несколько. Также совершенно непонятно, почему в итоге дописывается полученное айпи ко всем группам, а не только к тем, для которых есть токен в базе.

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

Выглядит так:

Код php функции:

public function get_groups_token () {
    try {
        $params_groups = array(
              'user_id' => $_SESSION['user_id'],
              'extended'=> '1',
              'filter' => 'admin',
              'fields' => 'members_count',
              'offset'=>'0',
              'count' => '1000'
         );
         $params_token = array(
              'access_token' => $_SESSION['access_token'],
              'v' => '5.74'
         );

        $get_params_groups = http_build_query($params_groups);
        $get_params_token = http_build_query($params_token);
        $result = json_decode(file_get_contents('https://api.vk.com/method/groups.get?'. $get_params_groups . '&' . $get_params_token ),true);
        $stmt = $this->dbh->prepare("SELECT * FROM groups WHERE user_id=:user_id");
        $stmt->execute(array(
            ':user_id' => $_COOKIE['user_id']
        ));

        if($stmt->rowCount() > 0) {
            $sql = $stmt->fetch(PDO::FETCH_ASSOC);
            ;
             do {
            if ($item['id'] = $sql['group_id']) {


                foreach ($result['response']['items'] as $item ) {
                        echo "
                        <p class='radiobutton'>
                                <input id='".$item['id']."' class='radio_input' type='radio' name='group_ids' value='".$item['id']."' >
                                <label class='radio_label' for='".$item['id']."'>
                                    <span class='picker_image' style='background-image: url(".$item['photo_100'].");'>
                                    </span>
                                    <span class='group_info'>
                                        <text class='group_label'>".$item['name']."</text>
                                        <text class='group_member_count'>".$item['members_count']." участников </text>
                                    </span>";
                                        echo "<span class='group_info' style='float:right; left:-16px;'>
                                        <text class='group_member_count' style='color: #00E14D;'>
                                                Токкен получен".$item['id']." - ".$sql['group_id']." 
                                        </text>
                                    </span>";
                                echo "</label>
                        </p>";

            } 
        }else{echo " ghbd";}  
    } while ($sql = $stmt->fetch(PDO::FETCH_ASSOC) && $item['id'] = $sql['group_id']);

        }
    }
    catch(PDOException $e) {
        echo $e->getMessage();
    }
}
READ ALSO
Ошибка Roundcube &ldquo;openssl_decrypt()&rdquo;

Ошибка Roundcube “openssl_decrypt()”

Версия roundcube 12

213
Yii2 попытка соединения не удалась

Yii2 попытка соединения не удалась

Я установил yii2 через композер в папку /var/www/site Сборка basic, сервер на ubuntu 1604 в локальной сети

224
Подсветка ссылок в тексте функцией php

Подсветка ссылок в тексте функцией php

Нужно в тексте $text найти ссылки, которые могут быть в разных форматах и сделать их реальными ссылками, те

200
Знак равно в параметре action

Знак равно в параметре action

Наткнулся на такую строчку кода:

253