Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF][Zend db_select]Ranking rekordów
Janusz1200
post
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 6
Dołączył: 19.12.2010
Skąd: Krzyżanowice

Ostrzeżenie: (0%)
-----


Witam, wie ktoś może, jak napisać coś takiego w Zendzie:

SELECT @pos:=@pos+1, id, table_pkt FROM `user`, (select @pos:=0) p WHERE league_id=2 order by points desc

(chodzi o dodatkową kolumnę, która numeruje rekordy)

Próbowałem z joinCross:
$select->joinCross('(select @pos:=0) p');

ale coś nie idzie....


Pozdrawiam

Janusz
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Janusz1200
post
Post #2





Grupa: Zarejestrowani
Postów: 110
Pomógł: 6
Dołączył: 19.12.2010
Skąd: Krzyżanowice

Ostrzeżenie: (0%)
-----


W przykładzie, który podałeś, robią 2 query (inicjowanie zmiennej i użycie zmiennej w selekcie)

$adapter->query("SET @pos = 0 .... ");
95
96 $adapter->query($sql);
97

nie wiem, czy to jest bezpieczne w sensie transakcyjności.
Ja zrobiłem w jednym select, tyle, że to jest nie tak eleganckie, jakbym chciał.

$sql= "SELECT @pos:=@pos+1 position, id
FROM section_user, (select @pos:=0) p
WHERE league_id=? order by table_pkt desc,
(table_pktwin - table_pktlost) DESC, table_w DESC,
table_d DESC,table_l

return $this->getAdapter()->fetchAll($sql, $leagueId);

Ten post edytował Janusz1200 29.03.2012, 16:57:12
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 16:44