Witam mam zapytanie które wyciąga ostatnio głosowane rekordy
wygląda ono tak
<?php
$page['super_order_by'] = true;
$conf['order_by'] = ' ORDER BY average_rate DESC, id ASC';
$query ='
SELECT DISTINCT(id)
FROM '.IMAGES_TABLE.'
INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON id = ic.image_id
WHERE average_rate IS NOT NULL
AND '.$forbidden.'
'.$conf['order_by'].'
LIMIT 0, '.$conf['top_number'].'
;';
?>
chciałbym zmienić je aby wyciągało te które posiadają największą ilość głosów oraz najwyższą ocenę, czyli najlepiej głosowane.
Tabele sql wyglądają tak:
Tabela tutaj w polu hit jest iloś wyświetleń danego rekordu a w polu rate ocena danego rekordu już(jest to już średnia ocena )
CREATE TABLE `etapety_images` (
`id` mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT,
`file` varchar(255) NOT NULL DEFAULT '',
`date_available` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`date_creation` date DEFAULT NULL,
`tn_ext` varchar(4) DEFAULT '',
`name` varchar(255) DEFAULT NULL,
`comment` text,
`author` varchar(255) DEFAULT NULL,
`hit` int(10) UNSIGNED NOT NULL DEFAULT '0',
`filesize` mediumint(9) UNSIGNED DEFAULT NULL,
`width` smallint(9) UNSIGNED DEFAULT NULL,
`height` smallint(9) UNSIGNED DEFAULT NULL,
`representative_ext` varchar(4) DEFAULT NULL,
`date_metadata_update` date DEFAULT NULL,
`average_rate` float(5,2) UNSIGNED DEFAULT NULL,
`has_high` enum('true') DEFAULT NULL,
`path` varchar(255) NOT NULL DEFAULT '',
`storage_category_id` smallint(5) UNSIGNED DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `images_i2` (`date_available`),
KEY `images_i3` (`average_rate`),
KEY `images_i4` (`hit`),
KEY `images_i5` (`date_creation`),
KEY `images_i1` (`storage_category_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=6335 ;
Męczę się z tym już dość sporo i zdecydowałem się aby ktoś mi pomógł :-)
Za wszelkie propozycje oraz sugestie i pomoc z góry dziękuję. (IMG:
http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Ten post edytował mefjiu 3.04.2007, 14:30:21