Hola,
Siento tener que recurrir a ti de nuevo para el tema de las tendencias. He estado probando tu código y al principio funciona bien pero después comienza a fallar. Como puedes ver aquí, tengo estos hashtags de prueba (aunque empiece por la id 22 no hay más hashtags atrás ni más por delante de 36):
Y sorprendentemente en la lista de tendencias aparece esto, Cena debería estar en lo primero de ella muy por delante:
#mundialito - 1.0938 - 2
#Cena - 1.0938 - 9
#mayorquemundialito - 1.0936 - 2
#maquinaria - 1.0921 - 1
#buenas - 1.0921 - 1
Otra cosa de la que me doy cuenta es que si esperas un poco la que va primera va creciendo su numero y nunca baja por lo que si la gente escribe en ese hashtag y ningún otro hashtag le supera en mensajes nunca baja. Lo bueno sería que fuera bajando poco a poco cuando vaya pasando el tiempo, este es el código que me diste y que he pasado a mysqli con sentencias preparadas:
Código PHP:
Ver original<?php $reporte_ultimos_dias = 7;
$lapso_de_intervalo = 1;
$sql = $mysqli->prepare("SELECT info.hashtag_content, SUM(info.cantidad) menciones, ( (CEIL( ( TIMESTAMPDIFF ( MINUTE,
DATE_SUB(NOW(), INTERVAL ? DAY),
NOW()
) / ?)
) / info.intervalo_actual) * info.cantidad) puntuacion
FROM (
SELECT
hashtag_content,
CEIL( ( TIMESTAMPDIFF( MINUTE,
DATE_SUB(NOW(), INTERVAL ? DAY),
hashtag_date
) / ?)
) intervalo_actual,
COUNT(DISTINCT hashtag_id) cantidad
FROM hashtags
WHERE ( hashtag_date >= DATE_SUB(NOW(), INTERVAL ? DAY) )
GROUP BY intervalo_actual, hashtag_content
HAVING intervalo_actual > 0
) info
GROUP BY info.hashtag_content
ORDER BY puntuacion DESC");
$sql->bind_param('iiiii', $reporte_ultimos_dias, $lapso_de_intervalo, $reporte_ultimos_dias, $lapso_de_intervalo, $reporte_ultimos_dias);
$sql->execute();
$sql_r = $sql->get_result();
while($hashtag = $sql_r->fetch_array())
echo '<div><a href="/i/hashtag/'.$hashtag['hashtag_content'].'" class="hcolor">#'.$hashtag['hashtag_content'].' - '.$hashtag['puntuacion'].' - '.$hashtag['menciones'].'</a></div>'; ?>