Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: neveikia užklausa

Parašė Narysx· 2009 Gru. 8 15:12:35
#1

Bandau išrikiuoti TOP siuntinius iš ratings lentelės pagal vidutinį įvertinimą. Štai mano užklausa:

$dow = @mysql_query("SELECT rating_item_id, rating_type, rating_vote, COUNT(rating_user) as kiek, SUM(rating_vote) as kiekis, kiekis / kiek as kintamas from ".DB_RATINGS." WHERE rating_type='F' group by rating_item_id order by kintamas DESC LIMIT 0,10");
while ($q = @mysql_fetch_array($dow))
{
$idas = $q['rating_item_id'];
$kintamasis = $q['kintamas'];
echo "$idas - $kintamasis<br>";
}




Bet nieko neatvaizduoja. Gal žinot kas blogai? :?

Parašė ozzWANTED· 2009 Gru. 8 15:12:30
#2

SELECT dalis - AVG(rating_vote) as vidurkis
ORDER BY dalis ORDER BY vidurkis DESC

Sudėtingesniems skaičiavimams su SQL funkcijomis, reiktų naudoti vėliau jau ir HAVING sakinius. Šiuo atveju be to galima apsieti.

Parašė Narysx· 2009 Gru. 8 15:12:49
#3

Kaip čia suprast, order by dalis ir order by vidurkis? Galima pagal du dalykus oredrint?

Parašė ozzWANTED· 2009 Gru. 8 15:12:05
#4

ORDER BY papai DESC, talija ASC, klubai DESC, ugis DESC
Ir kas man tai gali uždrausti ? :) Svarbu column'ai būtų tokie :)

Galima net:
ORDER BY rand()
Tačiau to daryti nerekomenduotina

Parašė Narysx· 2009 Gru. 8 15:12:08
#5

Tai jei gerai supratau, turėjau padaryti taip:

$dow = @mysql_query("SELECT rating_item_id, rating_type - AVG(rating_vote) as vidurkis from ".DB_RATINGS." WHERE rating_type='F' order by rating_item_id, order by vidurkis DESC LIMIT 0,10");
while ($q = @mysql_fetch_array($dow))
{
$kintamasis = $q['vidurkis'];
echo "$kintamasis <br>";
}




Bet vistiek negaunu jokio rezultato.

Redagavo Narysx· 2009 Gru. 8 15:12:16

Parašė nbanba· 2009 Gru. 8 16:12:44
#6

order by rating_item_id nenurodei kaip rikiuoti ASC ar DESC

Parašė Narysx· 2009 Gru. 8 16:12:14
#7

Vistiek tas pats.

Parašė nbanba· 2009 Gru. 8 16:12:20
#8

rating_type - AVG

brukšniukas taip pat nereikalingas manyčiau.

Parašė Narysx· 2009 Gru. 8 16:12:42
#9

Vistiek nieko nevaizduoja... :S
Fsio, pasidariau.

Redagavo Narysx· 2009 Gru. 8 16:12:39

Parašė nbanba· 2009 Gru. 8 16:12:22
#10

Nebent nėra tokių rezultatų su tokia užklausa, bet manau galutinis variantas vis dėl to būtų toks kaip ir minėjau:

SELECT rating_item_id, rating_type, AVG(rating_vote) as vidurkis from ".DB_RATINGS." WHERE rating_type='F' order by rating_item_id DESC, order by vidurkis DESC LIMIT 0,10

Galbūt kur nors kitur palikai klaidą :?

Parašė Narysx· 2009 Gru. 8 16:12:37
#11

Ne, galutinis variantas toks:

SELECT rating_item_id, rating_type, AVG(rating_vote) as vidurkis from ".DB_RATINGS." WHERE rating_type='F' group by rating_item_id order by vidurkis DESC LIMIT 0,10

;)