я сделать простой SQL-запрос:реального ранга в MySQL и PHP
SELECT `name`, `likes`
FROM `social`
WHERE `month` = '2015-01'
ORDER BY `likes` DESC
я добавить которым "Ранг" является intenger с ++
$data = array();
$rank = 0;
while ($table_row = mysqli_fetch_assoc($table)) {
$rank++;
$data[$table_row['name']] = $table_row;
$data[$table_row['name']]['rank'] = $rank;
}
Результат сохраняется и что я хочу с правой стороны
+------+------+-------+ +------+------+-------+
| rank | name | likes | | rank | name | likes |
+------+------+-------+ +------+------+-------+
| 1 | foo | 123 | | 1 | foo | 123 |
| 2 | mfoo | 33 | | 2 | mfoo | 33 |
| 3 | xfoo | 33 | | 2 | xfoo | 33 |
| 4 | yfoo | 30 | | 4 | yfoo | 30 |
| 5 | zfoo | 29 | | 5 | zfoo | 29 |
+------+------+-------+ +------+------+-------+
Как я могу получить правую сторону стола? есть способ решить его в запросе?
EDIT:
Там я стою прямо сейчас:
select IF(@likes=s.likes, @rownum, @rownum:[email protected]+1) rank2,
s.domain_name, s.likes,
(@likes:=s.likes) dummy
from social s,
(SELECT @rownum:=0) x,
(SELECT @likes:=0) y
WHERE `month` = '2015-01'
order by likes desc
но ранг не 100% правильно, потому что я хочу, чтобы пропустить ранг вместо подсчета через
Предоставление истории с некоторыми примерами данных поможет, также используя запрос mysql, вы можете получить ранг напрямую. –
@ Джеймс думает об этом скорее как о «месте», чем о «ранге», как о первом месте, втором месте и т. Д. Равные ранги должны означать «галстук» для ранга. –
@DigitalChris Я полностью согласен с тобой, поэтому Джеймс думает о чем-то вроде табло. – CTSchmidt