2016-06-30 4 views
0

Я ищу, чтобы отобразить фрагмент таблицы футбольной лиги на веб-странице. Я бы хотел, чтобы он выбрал одну конкретную команду (команда b), а затем команду на одно место выше и один ниже.Выберите данные выше и ниже строки

например.

   p w d l 
    team c 1 1 0 0 
    team b 1 0 1 0 
    team a 1 0 0 1 

На следующей неделе она может быть:

   p w d l 
    team d 2 2 0 0 
    team b 2 1 1 0 
    team c 2 1 0 1 

и так далее.

Как бы лучше всего это сделать? Использует ли он запрос в MySQL или я буду искать его в PHP?

Благодаря

+0

В таком случае число разыгрышей В любой заданной неделе это же для всей команды? – 1000111

+0

Каковы критерии для ранжирования команд? – Malinga

+0

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

ответ

0
select * from games order by w; 
+--------+------+------+------+------+ 
| name | p | w | d | l | 
+--------+------+------+------+------+ 
| team b | 1 | 0 | 1 | 0 | 
| team a | 1 | 0 | 0 | 1 | 
| team c | 1 | 1 | 0 | 0 | 
| team d | 2 | 2 | 0 | 0 | 
+--------+------+------+------+------+ 
4 rows in set (0.00 sec) 


mysql> SELECT NAME,P,W,D,L,@curRank := @curRank + 1 as rank FROM 

(выберите NAME, P, W, D, L от порядка игры от ш Desc) х, (SELECT @curRank: = 0) г;

+--------+------+------+------+------+------+ 
| NAME | P | W | D | L | rank | 
+--------+------+------+------+------+------+ 
| team d | 2 | 2 | 0 | 0 | 1 | 
| team c | 1 | 1 | 0 | 0 | 2 | 
| team b | 1 | 0 | 1 | 0 | 3 | 
| team a | 1 | 0 | 0 | 1 | 4 | 
+--------+------+------+------+------+------+ 
4 rows in set (0.01 sec) 


    mysql> SELECT NAME,P,W,D,L,rank FROM 
(SELECT NAME,P,W,D,L,@curRank := @curRank + 1 as rank, 
if(name ="team b",@curRank := @curRank*-1,0) AS required_rank 
FROM (select NAME,P,W,D,L from games order by w DESC) x, 
(SELECT @curRank := 0) r) p order by abs(rank) desc limit 3; 
+--------+------+------+------+------+------+ 
| NAME | P | W | D | L | rank | 
+--------+------+------+------+------+------+ 
| team b | 1 | 0 | 1 | 0 | 3 | 
| team c | 1 | 1 | 0 | 0 | 2 | 
| team a | 1 | 0 | 0 | 1 | -2 | 
+--------+------+------+------+------+------+ 
3 rows in set (0.00 sec) 
+0

спросите, не ясно ли вам –

+0

, пожалуйста, проверьте это, это сработает для вас –

+0

Пожалуйста, отформатируйте свой код, чтобы нам не пришлось. Спасибо. – Drew

Смежные вопросы