Estoy intentando mostrar una lista de artículos por su popularidad (mediante votaciones). Para explicaros mi duda obviare los detalles innecesarios y lo expondré como un ejemplo:
Digamos que tengo dos tablas en la base de datos.
Una, la de unos artículos, cuyos campos son: la "id" y el "nombre".
Y otra, la de los votaciones cuyos campos son: la "id", la foranea "id_articulo" y el "voto" (que puede ser solamente S ó N, que significan: me gusta o no me gusta). Y ya esta.
Mi duda es como mostrar una lista ordenada de articulos (ascendente o descendente, da igual), segun el numero de "S" o "N" (votos) que hayan recibido.
Mi duda consiste basicamente en, ¿como mostrar: en primer lugar los articulos con mayor numero de votos "S", luego de estos, los articulos sin voto alguno, y en último lugar los articulos con mayor numero de votos "N"?
Hasta donde yo he podido llegar es a crear esta query en una funcion, ubicada en una libreria, que mas tarde invoco:
Código PHP:
function muestrame_articulos($voto){ // $voto= "S"; (por ejemplo)
$link = conexion();
$query = "SELECT count(votaciones.voto) AS score, articulos.* FROM votaciones INNER JOIN articulos ON votaciones.id_articulo = articulos.id WHERE votaciones.voto='$voto'";
$rs = mysql_query($query, $link);
$resultado= array();
$row = mysql_fetch_assoc ($rs);
while ($row != false) {
$resultado[] = $row;
$row = mysql_fetch_assoc ($rs);
}
return $resultado;
Código PHP:
$voto= "S";
$resultado= muestrame_articulos($voto);
foreach($resultado as $item){
echo ("<span>". $item['nombre'] ." - ". $item['score'] ." votos</span><br/>");
}
Código HTML:
Articulo X lo que sea - 20 votos
Alguna ayuda?
Muchas Gracias