По клику в список

Если вы хотите получить что-то готовое и бесплатно, то пишите в этом разделе.

По клику в список

Сообщение Garch » 21 янв 2013, 22:47

В общем мне нужно чтобы при клике на кнопку пользователь автоматически вносился в список кликнувших, который находится рядом с самой кнопкой.
Но надо чтобы Пользователи не повторялись и админ приложения мог обнулить список не обновляя само приложение... Как то так)
Список будет состоять примерно из 5k кликов, или больше, и желательно
этот список что бы содержал фото пользователя, имя и фамилию, при клики на которые переходило бы на его страницу)
На as3 :)
Заранее спасибо)
Ну или хотя бы подробно опишите как это делать)
Ну или опишите только взаимодействие с базой данных, это ведь через базу делается?
И вообще как с базами в данном случае работать, потому что в базах я ничего вообще не шарю)
Жизнь — это просто куча всякой фигни, которая происходит. (с) Гомер Симпсон

Вы все пидорасы, а я — д’Артаньян.
Garch

 
Автор темы
Сообщения: 186
Зарегистрирован: 27 ноя 2011, 20:49
Благодарил (а): 37 раз.
Поблагодарили: 0 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: По клику в список

Сообщение Богдан » 22 янв 2013, 20:34

Я сам только учусь, но сделать можно вот как.

1. При загрузке приложения, вытаскивай данные о пользователе с помощью users.get. Как это сделать можно посмотреть в уроках на форуме.
2. Конектишься к php скрипту, который будет записывать эти данные в таблицу. Таблица с полями uid, photo, first_name, last_name.
3. Теперь, когда юзверь кликает на кнопку, вытаскиваешь данные из базы по viewer_id.
4. Обновляшь кол-во кликов (я так понял это цифра), добавляя +1

Ну и так же само можешь вывести из базы список кликнувших. Создай еще одно поле, и пиши в нем 1 если юзверь кликнул по кнопке. если не кликнул - будет 0. потом вытаскивай всех кто кликнул, и выводи о них данные.

А чтобы не кликнул два раза, так же само смотри, если у него стоит 1, то выбивай окно "вы уже кликали", если 0 - пропускай

Это все можно сделать намного проще, но я не знаю как. Как узнаю - скажу ;)

За это сообщение автора Богдан поблагодарил:
Garch
Аватара пользователя
Богдан

 
Сообщения: 21
Зарегистрирован: 26 дек 2010, 05:22
Благодарил (а): 4 раз.
Поблагодарили: 2 раз.

Re: По клику в список

Сообщение Garch » 22 янв 2013, 20:40

Спасибо, буду пробовать) А кто нибудь знает еще как сделать проще?
Жизнь — это просто куча всякой фигни, которая происходит. (с) Гомер Симпсон

Вы все пидорасы, а я — д’Артаньян.
Garch

 
Автор темы
Сообщения: 186
Зарегистрирован: 27 ноя 2011, 20:49
Благодарил (а): 37 раз.
Поблагодарили: 0 раз.

Re: По клику в список

Сообщение Serge » 22 янв 2013, 21:18

Нет смысла хранить в базе имя/фото, лучше их получать из АПИ, храня у себя только уиды.
Ну а в целом, как написано выше - при нажатии на кнопку записать пользователя в базу (можно даже не парится на счет кликал/не кликал, если это не нужно, а просто делать REPLACE запрос. Или INSERT с игнорированием дублирования).
Выборка из базы тоже очень просто, а потом полученные данные объединять в строку и кормить АПИ.
http://sevenlines.com.ua - разработка и продвижение сайтов

За это сообщение автора Serge поблагодарил:
Garch
Serge
WEB Team
WEB Team
 
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55
Благодарил (а): 2 раз.
Поблагодарили: 65 раз.

Re: По клику в список

Сообщение Garch » 26 янв 2013, 20:44

В общем с этим списком я разобрался почти, но на сколько я понял гетПрофайлом можно узнать только информацию о 1000 пользователей, а мне надо минимум о 5000, как это сделать? У меня список uid из пхп берется, и из него уже берет id для гетПрофайла, я подозреваю что надо в пхп сделать несколько списков с uidами и несколько раз делать гетПрофайл с разными списками уидов, это стоит сделать так? Если да, то напишите как в пхп сформировать такие списки, а еси не так, то предложите альтернативу)
Жизнь — это просто куча всякой фигни, которая происходит. (с) Гомер Симпсон

Вы все пидорасы, а я — д’Артаньян.
Garch

 
Автор темы
Сообщения: 186
Зарегистрирован: 27 ноя 2011, 20:49
Благодарил (а): 37 раз.
Поблагодарили: 0 раз.

Re: По клику в список

Сообщение Alazaur » 27 янв 2013, 08:32

Вот набросал вам функцию на AS которая будет загружать сколь угодно пользователей.
  1. function usersLoad(params:Object = null):void
  2. {
  3.     if (!params) params = arguments[0];
  4.     var currentTime:int = new Date().time;
  5.     if (!params.step) {
  6.         params.step = 0;
  7.         params.reTime = currentTime;
  8.     }
  9.     else {
  10.         var diffTime:int = currentTime - params.reTime;
  11.         if (diffTime < 500)
  12.         {
  13.             params.reTime = 0;
  14.             setTimeout(usersLoad, 500-diffTime, params);
  15.             return;
  16.         } else {
  17.             params.reTime = currentTime;
  18.         }
  19.     }
  20.     var uids:Array = params.uids;
  21.     var step:int = params.step;
  22.     var start:int = step * 1000;
  23.     var end:int = (start + 1000 >= uids.length)?uids.length:start + 1000;
  24.     var currentuids:String = '';
  25.     if (!params.users) params.users = new Array();
  26.     for (var i:int = start; i < end; i++)
  27.     {
  28.         currentuids += uids[i] + ',';
  29.     }
  30.     VK.api("users.get", { uids:currentuids, fields:"photo" }, function(o:Object):void
  31.     {
  32.         params.users = params.users.concat(o as Array);
  33.         if (end >= uids.length)
  34.         {
  35.             params.onComplete(params.users);
  36.             return;
  37.         }
  38.         params.step++;
  39.         usersLoad(params);
  40.     }, params.onError);
  41. }

В функцию надо передать объект, с параметрами:
uids:Array - массив с идентификаторами пользователей,
onComplete:Function - функция которая будет вызвана, по завершении работы, в нее будет передан массив содержащий всех пользователей (такой же как и возвращается методом "users.get")
onError:Function - функция которая будет вызвана в случае ошибки. Эта функция передается в метод ВК, то есть должна принимать объект, как и функции передающиеся в VK.api()

Пример:
  1. //Все как обычно
  2. var flashVars:Object = stage.loaderInfo.parameters as Object;
  3. var VK:APIConnection = new APIConnection(flashVars);
  4.  
  5. //Массив с идентификаторами пользователей, теоретически идентификаторов может быть сколь угодно.
  6. var userids:Array = [1232334, 564435435, 54786548375, 4564756746, 3463746374];
  7.  
  8. //Вызываем нашу функцию
  9. usersLoad({uids:userids, onComplete:loadedUsers, onError:loadingError});
  10.  
  11. //Определяем функции обработчики
  12. function loadedUsers(users:Array):void
  13. {
  14.    //Массив users будет содержать данные пользователей.
  15.    trace(users[0].first_name);//Для примера выведем имя первого
  16. }
  17.  
  18. function loadingError(error:Object)
  19. {
  20.    //Функция обработки ошибки, ее вызывает метод APIConnection
  21.    trace("Возникла ошибка");
  22. }


P.S. Никакой гарантии 100%-й безотказности не даю. Я попробовал получить данные на 5000 пользователей отработала успешно. Если будет работать без проблем - хорошо, а если где-то вылезут артефакты доработаете сами, направление куда копать я вам дал. Ну и смотрите еще, что, функция всвязи с ограничениями вконтакте делает 2 запроса к API в секунду, можно было сделать 3, но я оставил 1 как резерв, так что если у вас например 10.000 пользователей, рассчитывайте, что данные на них будут грузиться не менее 5 секунд.

За это сообщение автора Alazaur поблагодарил:
Garch
Alazaur
Разработчик
Разработчик
 
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25
Благодарил (а): 24 раз.
Поблагодарили: 121 раз.

Re: По клику в список

Сообщение Garch » 27 янв 2013, 12:07

Спасибо большое, буду тестить)
Жизнь — это просто куча всякой фигни, которая происходит. (с) Гомер Симпсон

Вы все пидорасы, а я — д’Артаньян.
Garch

 
Автор темы
Сообщения: 186
Зарегистрирован: 27 ноя 2011, 20:49
Благодарил (а): 37 раз.
Поблагодарили: 0 раз.


Вернуться в Просим готовое и бесплатно



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron