Holas, en mi galería, realizo unas estadísticas mensuales donde el ganador del mes aparecerá en el calendario del año siguiente... el ganador se saca del más visto, más comentado, más impreso y más enviado a sus amigos... recibiendo 5, 4, 3 y 2 punto por cada sección y posición en el ranking de cada categoría... pero quiero penalizar las lecturas por cada comentario que no tenga nada que ver con el dibujo.
Aquí está el control de las estadísticas mensuales:
http://www.fanart.nippon-tour.com/in...?seccion=lomas
actualmente, las lecturas las calculo así, sólo puntuan los 4 primeros:
Código PHP:
SELECT `id_item`,`lecturas`
FROM `stats_items`
WHERE `fecha_mes`='2008-12-00'
ORDER BY `lecturas` DESC
LIMIT 4
Tengo una tabla, donde contabilizo las lecturas que tienen los items de cada mes en mi galería ... y también otra donde almaceno los comentarios que se realizan de dichos items... estos comentarios pueden tener valor 1 o 0, dependiendo si el tema del comentario es referente al item o se lo han tomado como un chatBox... y lo que quiero es que si el comentario tiene valor 0, reste 3 lecturas al item...
Código PHP:
CREATE TABLE IF NOT EXISTS `stats_items` (
`fecha_mes` date NOT NULL default '0000-00-00',
`id_item` mediumint(9) NOT NULL default '0',
`lecturas` mediumint(9) NOT NULL default '0',
`impresiones` mediumint(9) NOT NULL default '0',
`envios` smallint(6) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Código PHP:
CREATE TABLE IF NOT EXISTS `comentarios` (
`id` smallint(6) NOT NULL auto_increment,
`fecha_hora` datetime NOT NULL default '0000-00-00 00:00:00',
`id_item` mediumint(9) NOT NULL default '0',
`contenido` longtext NOT NULL,
`valido` tinyint(1) NOT NULL default '1',
`autor` varchar(255) NOT NULL default '',
`email` varchar(255) NOT NULL default '',
`avisar` int(1) NOT NULL default '0',
`hostname` varchar(255) NOT NULL default '',
`host` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3228 ;
He llegado a este SELECT para averiguar el resultado de: lecturas-(comentarios*3 si `valido`='0') pero de un item en concreto indicado en
WHERE `id_item`='991' Código PHP:
SELECT (SELECT `lecturas` FROM `stats_items` WHERE `id_item`='991' AND `fecha_mes`='2008-12-00')-(SELECT (SELECT count(*) FROM `comentarios` WHERE `id_item`='991' AND `fecha_hora`>='2008-12-01' AND `valido`='0'))*3
Pero no sabría hacer un SELECT para que me recoja los más leídos con esa penalización... no se si me he explicado...
Plis ayudadme!!!