Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/12/2008, 04:43
Avatar de X3mdesign
X3mdesign
 
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 7 meses
Puntos: 2
contabilizar lecturas de un registro con penalización...

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 `lecturasDESC            
            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_mesdate NOT NULL default '0000-00-00',
  `
id_itemmediumint(9NOT NULL default '0',
  `
lecturasmediumint(9NOT NULL default '0',
  `
impresionesmediumint(9NOT NULL default '0',
  `
enviossmallint(6NOT NULL default '0'
ENGINE=MyISAM DEFAULT CHARSET=latin1

Código PHP:
CREATE TABLE IF NOT EXISTS `comentarios` (
  `
idsmallint(6NOT NULL auto_increment,
  `
fecha_horadatetime NOT NULL default '0000-00-00 00:00:00',
  `
id_itemmediumint(9NOT NULL default '0',
  `
contenidolongtext NOT NULL,
  `
validotinyint(1NOT NULL default '1',
  `
autorvarchar(255NOT NULL default '',
  `
emailvarchar(255NOT NULL default '',
  `
avisarint(1NOT NULL default '0',
  `
hostnamevarchar(255NOT NULL default '',
  `
hostvarchar(255NOT 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 `lecturasFROM `stats_itemsWHERE `id_item`='991' AND `fecha_mes`='2008-12-00')-(SELECT (SELECT count(*) FROM `comentariosWHERE `id_item`='991' AND `fecha_hora`>='2008-12-01' AND `valido`='0'))*
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!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour