Ver Mensaje Individual
  #8 (permalink)  
Antiguo 04/08/2014, 16:02
Avatar de iEnrique
iEnrique
 
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Respuesta: Hashtags del momento

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
  1. <?php $reporte_ultimos_dias = 7;
  2.                     $lapso_de_intervalo = 1;
  3.                     $sql = $mysqli->prepare("SELECT info.hashtag_content, SUM(info.cantidad) menciones, ( (CEIL( ( TIMESTAMPDIFF (  MINUTE,
  4.                                                        DATE_SUB(NOW(), INTERVAL ? DAY),
  5.                                                        NOW()
  6.                                                      ) / ?)
  7.                                                ) / info.intervalo_actual) * info.cantidad) puntuacion
  8.                                    FROM (
  9.                                        SELECT
  10.                                            hashtag_content,
  11.                                            CEIL(   ( TIMESTAMPDIFF(  MINUTE,
  12.                                                        DATE_SUB(NOW(), INTERVAL ? DAY),
  13.                                                        hashtag_date
  14.                                                       ) / ?)
  15.                                                ) intervalo_actual,
  16.                                            COUNT(DISTINCT hashtag_id) cantidad
  17.                                        FROM hashtags
  18.                                        WHERE ( hashtag_date >= DATE_SUB(NOW(), INTERVAL ? DAY) )
  19.                                        GROUP BY intervalo_actual, hashtag_content
  20.                                        HAVING intervalo_actual > 0
  21.                                    ) info  
  22.                                    GROUP BY info.hashtag_content
  23.                                    ORDER BY puntuacion DESC");
  24.                     $sql->bind_param('iiiii', $reporte_ultimos_dias, $lapso_de_intervalo, $reporte_ultimos_dias, $lapso_de_intervalo, $reporte_ultimos_dias);
  25.                     $sql->execute();
  26.                     $sql_r = $sql->get_result();
  27.                     while($hashtag = $sql_r->fetch_array())
  28.                         echo '<div><a href="/i/hashtag/'.$hashtag['hashtag_content'].'" class="hcolor">#'.$hashtag['hashtag_content'].' - '.$hashtag['puntuacion'].' - '.$hashtag['menciones'].'</a></div>'; ?>