Как отсортировать базу ID пользователей вконтакте?

Тема в разделе "Мегафлуд", создана пользователем BIZON, 15 окт 2015.

  1. BIZON

    BIZON Перезагрузка...

    Moderator
    • Супермодератор
    Регистр.:
    31 окт 2006
    Сообщения:
    574
    Симпатии:
    1.541
    В общем спарсил всех пользователей из 10 групп, для определенного города.
    Теперь стоит задача, отсортировать всех пользователей, которые состоят во всех группах.
    Каким образом это можно осуществить?
     
  2. nejtr0n

    nejtr0n Постоялец

    Регистр.:
    24 янв 2014
    Сообщения:
    118
    Симпатии:
    62
    Если все в одной таблице, то where group_1 is not null and group_2 is not nul и т.д.
    Если в разных, то inner join group1_table as g1 on g1.user_id=users.id inner join group2_table as g2 on g2.user_id=users.id .......
     
  3. BIZON

    BIZON Перезагрузка...

    Moderator
    • Супермодератор
    Регистр.:
    31 окт 2006
    Сообщения:
    574
    Симпатии:
    1.541
    Всё в txt :crazy:

    id1
    id2
    id3
    ...
     
  4. nejtr0n

    nejtr0n Постоялец

    Регистр.:
    24 янв 2014
    Сообщения:
    118
    Симпатии:
    62
    Фотмат хранения данных скиньте пожалуйста. (Лучше все файлы)
     
    bertolai и BIZON нравится это.
  5. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    385
    Симпатии:
    254
    А не быстрее через API получить пользователей и в БД? А потом что угодно с ними делать
     
  6. BIZON

    BIZON Перезагрузка...

    Moderator
    • Супермодератор
    Регистр.:
    31 окт 2006
    Сообщения:
    574
    Симпатии:
    1.541
    Может и быстрее) :) Но вот у меня знаний в этой области нет...
     
  7. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    385
    Симпатии:
    254
    В области БД нет или API ВК?
    Получение пользователей через API: Перейти по ссылке
    Запрос будет примерно такой: Перейти по ссылке

    А в БД, это дольше объяснять

    PHP:
    $row json_decode($resulttrue);
    $insert $db->prepare('INSERT INTO `table`(`uid`, `city`, `country`, `gid`) VALUES(:uid, :city, :country, :gid)');


    $data['gid'] = $group_id// ID группы, из которой в данный моммент получаем людей
    foreach($row['response']['response'] as $user)
    {
        
    $data = array(
            
    'uid' => $user['uid'],
            
    'city' => $user['city'],
            
    'country' => $user['country']
        );
      
        
    $insert->execute($data);
    }
     
    Последнее редактирование: 15 окт 2015
    BIZON нравится это.
  8. BIZON

    BIZON Перезагрузка...

    Moderator
    • Супермодератор
    Регистр.:
    31 окт 2006
    Сообщения:
    574
    Симпатии:
    1.541
     
  9. BIZON

    BIZON Перезагрузка...

    Moderator
    • Супермодератор
    Регистр.:
    31 окт 2006
    Сообщения:
    574
    Симпатии:
    1.541
    пс
    не нужно эту тему перемещать в пхп раздел..

    пс2
    мне лишь бы сделать выборку, пусть даже с помощью блокнота и бубна..

    пс3
    в пхп не силен, нуб.
     
  10. javx

    javx

    Регистр.:
    28 авг 2015
    Сообщения:
    528
    Симпатии:
    246
    Тебе нужны только те пользователи которые сразу в 10 групах состоят? если парсишь в тхт фаил - делай для каждой группы отдельный фаил. После? тот что самый маленький будет - на его основе проверяешь сходство с остальными.
    Превращаешь фунцией explode() строку(содержимое маленького файла) в массив. Допустим масив с длинной 1000 пользователей, в цикле проверяешь каждый элемент массива, на наличие во всех группах.
    $full_group += files_get_content(one.txt);
    $full_group += files_get_content(two.txt); //по идее тексты всех групп должны объединится, и так 9 групп
    ...
    Например при первой итерации получили $arr[0] = id123456;
    preg_match_all($arr[0]$full_group;$res[$i]); // смотрим сколько нашло вхождений "id123456" если 9 вхождений то это наш клиент.
    if(count($res[$1]) == 9){ записываем в фаил нашего клиента $arr[id]}