Seleccionar los registros más repetidos [MySQL]
Publicado el Jueves 2 Octubre 2008Este más que un post, es para acordarme como lo he hecho
Para Doble Pletina estoy creando un modulo (buscacintas <- ¿muy original no?) para hacer busquedas en youtube y poder crearte nodos con ellas (lo liberaré si a alguien le interesa
) El funcionamiento, por ahora, es correcto, bueno aún tengo algunos problemas con la paginación y con la duración de los videos que estoy intentando solucionar ![]()
Cada vez le estoy añadiendo má funcionalidades y esta última me parece que se puede usar en otros sitios:
Primero, crear el bloque
1 2 3 | $block_content =''; $block['subject'] = 'Canciones más grabadas'; |
Lo principal, la llamada a MySQL que hace todo
1 | $llamada = db_query("SELECT *, COUNT(*) as num FROM content_type_cancion GROUP BY field_youtube_value ORDER BY num DESC LIMIT 0 , 3"); |
content_type_cancion es un CCK que almacena las canciones y uno de los campos, esta claro, es el id de youtube llamado field_youtube_value
Ahora solo no queda recorrer $llamada y tomar los valores necesarios para crear el contenido del bloque y listo, ordenados por el video de youtube más repetido
1 2 3 4 5 6 7 8 9 10 11 | $id = 0; while ($canciones = db_fetch_object($llamada)) { $items[] = $canciones; $salida.='<div class="repe">'; $titulo = db_result(db_query("SELECT title FROM {node} WHERE nid = '%s'",$items[$id]->vid)); $salida.='<a href="/node/'.$items[$id]->vid.'" title="'.$titulo.'">'; $salida.='<img align="left" width="54" hspace="7" height="40" src="http://img.youtube.com/vi/'.$items[$id]->field_youtube_value.'/2.jpg"/>'.$titulo.'</a></div>'; $id++; } $block['content'] = $salida; return $block; |
Archivado en (Drupal)



