Autor | Zpráva | ||
---|---|---|---|
sloncz Profil |
Dobrý den, mám tabulku s hlasy a každý hlas má u sebe "id" ke které fotce patří (hlasování o nejlepší fotku zvířete) a já bych se chtěl zeptat, jestli by mi někdo neporadil/neukázal nějaký SQL příkaz, který by mi vyechoval přímo kolikátá je ta fotka v pořadí (podle toho kolik má těch hlasů)? Např "SELECT neco WHERE fotka='3'"
Předem děkuji za každou radu/ukázku/pomoc |
||
leomato Profil * |
#2 · Zasláno: 28. 12. 2013, 23:43:02
ELECT neco WHERE fotka='3' ORDER BY hlasy DESC :)
|
||
Petr ZZZ Profil |
#3 · Zasláno: 29. 12. 2013, 00:30:31
leomato: „
ELECT “
To asi ne... |
||
Alphard Profil |
#4 · Zasláno: 29. 12. 2013, 00:46:50
Chybí tam S, ale stejně to k ničemu nevede. Když je ve where filtrování jedné fotky, nemá smysl žádné řazení.
Obvyklé řešení je vyfiltrovat fotky, které mají víc více hlasů a ty spočítat, nějak takto: select count(*)+1 poradi from (select count(*) pocet from hlasy group by id_fotky having pocet > (select count(*) from hlasy where id_fotky = 3)) t; |
||
sloncz Profil |
#5 · Zasláno: 29. 12. 2013, 18:31:11
Tak jsem to zkoušel ale vypíše to jen chybu Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in /data/web/virtuals/50406/virtual/www/poradi.php on line 10 - to je ten řádek s mysql_fetch_array
$result = mysql_result(mysql_query("select count(*)+1 poradi from (select count(*) pocet from hlasy group by id_fotky having pocet > (select count(*) from hlasy where id_fotky = 3)) t;"), 0); $poradi = mysql_fetch_array($result); print_r($poradi); |
||
Taps Profil |
#6 · Zasláno: 29. 12. 2013, 21:46:17
sloncz:
$result =mysql_query("select count(*)+1 poradi from (select count(*) pocet from hlasy group by id_fotky having pocet > (select count(*) from hlasy where id_fotky = 3)) t;"); $poradi = mysql_fetch_array($result); print_r($poradi); |
||
Časová prodleva: 10 let
|
0