ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #921  
Старый 22.12.2009, 10:32
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

запрос правильный, только что у себя проверил, должен работать. В чем ошибка проявляется?
 
Ответить с цитированием

  #922  
Старый 22.12.2009, 13:22
Аватар для mff
mff
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме:
5866479

Репутация: 1809


Отправить сообщение для mff с помощью ICQ
По умолчанию

Pashkela, запрос правильный, но он сортирует по большему рейтингу, 20 позиций, а потом полученное подсортировывает по стране.
То есть если есть 2 позиции
p1 с рейтингом 30 страна Англия
p2 срейтингом 40 страна Белорусь

этот запрос отсортирует так:
p2
p1

так как рейт больше. Но у p2 страна на букву "Б" и следовательно если я сортирую полученное по стране, то на букву "А" должно идти первым.

Нужно отобрать из базы 20 позиций с наибольшим рейтингом и отсортировать по стране сторого.

Я так понял нужно 2 запроса делать?

Спасибо!
 
Ответить с цитированием

  #923  
Старый 22.12.2009, 13:36
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

Цитата:
так как рейт больше. Но у p2 страна на букву "Б" и следовательно если я сортирую полученное по стране, то на букву "А" должно идти первым.
тогда вопрос неправильно стоит, просто поменяй местами ORDER BY `rating` DESC, `country` ASC тут, т.е. первым должно идти `country` ASC, если тебе алфавит страны важнее

PS: Если опять не то, то да, два запроса тогда наверное, одновременно и рейтинг наибольший и сортировка так, как тебе надо - вряд ли

Последний раз редактировалось Pashkela; 22.12.2009 в 13:39..
 
Ответить с цитированием

  #924  
Старый 22.12.2009, 14:04
Аватар для Gray_Wolf
Gray_Wolf
Постоянный
Регистрация: 07.03.2009
Сообщений: 357
Провел на форуме:
1284900

Репутация: 399
По умолчанию

Узнаёш 1-м запросом рейт 20-го и потом выводиш по алфавиту всех у кого рейт >= полученного...
 
Ответить с цитированием

  #925  
Старый 22.12.2009, 19:15
Аватар для mff
mff
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме:
5866479

Репутация: 1809


Отправить сообщение для mff с помощью ICQ
Thumbs down

Цитата:
Сообщение от Gray_Wolf  
Узнаёш 1-м запросом рейт 20-го и потом выводиш по алфавиту всех у кого рейт >= полученного...
Пробывал вот так извратиться них не вышло

Код:
$result = mysql_query("SELECT * FROM (mysql_query("SELECT * FROM `base_` WHERE `show`='1' ORDER BY `rating` DESC LIMIT 0, 20")) WHERE `show`='1' ORDER BY `country` ASC");


Помогите
 
Ответить с цитированием

  #926  
Старый 22.12.2009, 19:41
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

короче уже голову сломал, чо те надо Попробуй так:

select * from (select * from `base_` where `show`='1' ORDER BY `rating` DESC LIMIT 0, 20) as a ORDER BY `country` ASC

PS: Ибо второй раз писать where и limit смысла конечно нет

Последний раз редактировалось Pashkela; 22.12.2009 в 19:50..
 
Ответить с цитированием

  #927  
Старый 22.12.2009, 20:23
Аватар для mff
mff
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме:
5866479

Репутация: 1809


Отправить сообщение для mff с помощью ICQ
Thumbs up

Цитата:
Сообщение от Pashkela  
короче уже голову сломал, чо те надо Попробуй так:

select * from (select * from `base_` where `show`='1' ORDER BY `rating` DESC LIMIT 0, 20) as a ORDER BY `country` ASC

PS: Ибо второй раз писать where и limit смысла конечно нет
Спс, почти оно Но вот СКРИН, как то Страну коряво сортирнуло
 
Ответить с цитированием

  #928  
Старый 22.12.2009, 20:35
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

покажи запрос на пыхе, плз
 
Ответить с цитированием

  #929  
Старый 22.12.2009, 22:17
Аватар для mff
mff
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме:
5866479

Репутация: 1809


Отправить сообщение для mff с помощью ICQ
По умолчанию

PHP код:
if($so==3){$result mysql_query("select * from (select * from `base_` where `show`='1' ORDER BY `rating` DESC LIMIT 0, 20) as a ORDER BY `country` ASC");} 
 
Ответить с цитированием

HELP ME! PLEEEEEASE!
  #930  
Старый 25.12.2009, 13:15
Аватар для mff
mff
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме:
5866479

Репутация: 1809


Отправить сообщение для mff с помощью ICQ
Unhappy HELP ME! PLEEEEEASE!

UP! Помогите плиз, ничего не выходит.
Цитата:
Сообщение от mff  
Помогите с запросом, нужно из базы выбрать 20 строчек с наибольшим рейтингом и полученное отсортировать по стане:
Побывал так:
Цитата:
$result = mysql_query("SELECT * FROM `base` WHERE `show`='1' ORDER BY `rating` DESC, `country` ASC LIMIT 0, 20");
не получилось
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сетевой этикет (Перед тем, как задать вопрос хакеру) satana-fu Статьи 7 21.10.2009 07:40
Ответы на часто задаваемые вопросы + линки на статьи по SQL/XSS/PHP-инклуд Jokester Уязвимости 2 28.06.2009 00:19
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ