Сортировка по очкам из базы

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
Аватара пользователя
Влад
Модератор
Модератор
Сообщения: 654
Зарегистрирован: 29 апр 2010, 22:24

Re: Сортировка по очкам из базы

Сообщение Влад »

Возможно, я опять не туда лезу, может нужно из ява отправлять строку всех пользователей в пхп, и там уже как-то сортировать массивом и делать выборку по одному?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Сортировка по очкам из базы

Сообщение Александр »

Влад
Так ты бы текст ошибок писал хотя бы...
Уверен что friends.getAppUsers доступен с сервера? friends.get доступен.
Влад писал(а):Возможно, я опять не туда лезу, может нужно из ява отправлять строку всех пользователей в пхп, и там уже как-то сортировать
Можно и так. Пробуй.
Влад писал(а): и делать выборку по одному?
чего?

Ну и имей ввиду, что выполняя какие-то действия на сервере, ты его нагружаешь.
Понимать это всё надо... Понимать...
Аватара пользователя
Влад
Модератор
Модератор
Сообщения: 654
Зарегистрирован: 29 апр 2010, 22:24

Re: Сортировка по очкам из базы

Сообщение Влад »

Код: Выделить всё

VK.init(function() {      $VK = new vkapi($api_id, $api_key);$resp = $VK->api('friends.get', array('uid'=>$viewer_id,'fields'=>'photo')); $count = sizeOf($resp['response']);// через цикл forfor ($i=0; $i<$count; $i++) { $ph = $resp['response'][$i]['uid'].','; $query = "SELECT * FROM users WHERE uid='$ph' ORDER BY point";$sql = @mysql_query($query);  while ($sql_data = @mysql_fetch_array($sql)) {         echo " ".$sql_data['name']." ";        }                }
По сабжу Александр грубо говоря столкнулся с такой проблемой, что сортировка не происходит опять, выводит все как надо, но не сортирует, в чем проблема может быть?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Сортировка по очкам из базы

Сообщение Александр »

Влад писал(а):VK.init(function() {
Это что здесь?

В цикле делаешь много обращений к базе? У тебя свой мощный сервер и ты специально так делаешь.
Логики в коде не увидел.

Изучи запросы к sql. Про WHERE uid IN (1,2,3).

И главное не тупо попробуй копировать, а пойми, разберись. Уже бы давно разобрался и сделал что хотел.

На листке бумаги опиши для себя логику работы. Блок-схему составь...
Аватара пользователя
Влад
Модератор
Модератор
Сообщения: 654
Зарегистрирован: 29 апр 2010, 22:24

Re: Сортировка по очкам из базы

Сообщение Влад »

Код: Выделить всё

$query = "SELECT * FROM users WHERE uid IN ($ph) ORDER BY points DESC";$sql = mysql_query($query);
Все равно не сортирует
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Сортировка по очкам из базы

Сообщение Александр »

Код: Выделить всё

$friends_uids = '1,2,1306422'; // сюда напиши id через запятую, которые нужно выбирать$query = 'SELECT * FROM users WHERE uid IN ('.$friends_uids.') ORDER BY points DESC';echo $query.'<br />'; // эта строка выведет запрос, выполни его через phpMyAdmin и посмотри результат$sql = mysql_query($query);while ($sql_data = mysql_fetch_array($sql)) {         echo $sql_data['uid'].'<br />';}
Аватара пользователя
Влад
Модератор
Модератор
Сообщения: 654
Зарегистрирован: 29 апр 2010, 22:24

Re: Сортировка по очкам из базы

Сообщение Влад »

Все почти получилось, последняя формальность, как убрать запятую в конце всей строки?

Код: Выделить всё

$ph = $resp['response'][$i]['uid'].',';$lolka =  substr($ph, 0, strlen($ph)-1); 
так не выходит
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Сортировка по очкам из базы

Сообщение Александр »

Код: Выделить всё

$str = substr($str, 0, -1);
Ответить