узнать позицию значения после сортировки

Автор bbbbbb, 12 апреля 2008, 09:33:08

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

bbbbbb

есть таблица для рейтинга и есть дивжок и сайт

id | name | pole|
------------------|
1 a    20
2 b    30 |
3 c    10
----------------- |


допустим мы перешли к id...

нужно отсортировать к убыванию и написать на каком "месте" id 2

пробовал COUNTE, но не получаеться определить в какой позиции значение id ... как сделать?


куда смотреть какие опреаторы делать?? как на smf?
(я пробовал в коде smf о не нашел? больше сутки наверное, если в нем такое есть)

KapaBG

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

bbbbbb

Цитата: Княже от 12 апреля 2008, 09:46:11
тоисть свой бред опиши в терминах базы, гледишь и сам решишь свою задачу

там найти очень сложно этот бред, и где его искать собственно?

а в таблицах что? там же ничего нету, такое же как и у меня (про голосования в таблицах нету)

и где ты примерно такое видел в форуме, ну искать месяц эту одну строку наверное не реально и менно такого я не видел...

ты имеешь ввиду когда он отсортировывает по указанному полю и выводит:

SELECT col_name, aasd,asd FROM tbl_name WHERE col_name = "1" ORDER BY  col_name LIMIT 10,20
или нет??

но а как мне узнать именно позицию?


KapaBG

вот разберися как ми этот ид берет типа
$request = db_query("
SELECT * FROM {$tp_prefix}dummy ORDER BY ID_dummy", __FILE__, __LINE__);
if(mysql_num_rows($request)>0)
{
$no = 0;
while ($row = mysql_fetch_assoc($request))
{
$no++;
$context['TPortal']['dummydb'][$no] = array(
'id' => $row['ID_dummy'],
'date' => timeformat($row['date']),
'comment' => $row['comment'],
);
}

mysql_free_result($request);
}


шо касаетсо убывание - ORDER BY my_field DESCENDING

bbbbbb

у меня такой таблицы нету! а что это он делает - просто выводит?

1. как быть с id в моем случае? ( у меня он сам увеличиваеться)
2. Возможно нужно еще одну таблицу делать и там что-то выделовать?

мне это надо - это как-то делают, если бы обяснили как это делаеться, возможно проблема в том чтобы написать запрос хитрый...  wallbash

KapaBG

bbbbbbbbbbbbbbbbbbbbb, от тебе требуетсо описать што у тебе и где лежит. из каких таблиц ты береш id, name, pole. по каким критерием. если из воздуха, то ид свой ставь просто от балды, и так далее.

bbbbbb

понятно, но я делаю большой портал, даже сразу несколько движков, все получаеться...

есть кароче рейтинг

ну так я вынесу допустим с этого рейтинга значение ОДНО id = 2, pole у него будет 50, как мне теперь узнать какой он по счету в рейтинге по стобцу pole? (тоесть на каком он месте?)

http://topdj.ua/djs/3417/ вот пример... от куда там знают на каком он месте? как сделать запрос и как построить таблицу?

bbbbbb

сиськи письки хвост  2funny 2funny 2funny :D >:D uglystupid laugh :P  2funny

SELECT count(*)+1 FROM `table` AS t1
LEFT JOIN `table` AS t2
ON t1.id=$id AND t1.pole < t2.pole
where t2.id IS NOT NULL

KapaBG

bbbbbbbbbbbbbbbbbbbb - силен, |бьюсь ап стену| :) плюс тебе, а тему ф топку

bbbbbb

мне помогли, написать было сложнова-то

bbbbbb

DB2:

select tmp.position
from (select row_number() over(order by pole desc) as position, id from rating) as tmp
where tmp.id = 2


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