Foros del Web » Programando para Internet » PHP »

Como mostrar los mas votados?

Estas en el tema de Como mostrar los mas votados? en el foro de PHP en Foros del Web. Bueno ocupo ayuda con lo siguiente: Tengo una base de datos que añade votos a un id,, lo unico que no se es como ver ...
  #1 (permalink)  
Antiguo 15/11/2011, 21:31
 
Fecha de Ingreso: abril-2011
Ubicación: Los Mochis, Sinaloa, Mexico
Mensajes: 25
Antigüedad: 13 años
Puntos: 1
Como mostrar los mas votados?

Bueno ocupo ayuda con lo siguiente:

Tengo una base de datos que añade votos a un id,, lo unico que no se es como
ver los mas votados ejem: pagina.php?p=masvotado o algo asi:D

el codigo para añadir votos es:
Código PHP:
f($_GET['votarb']) {
$get=$_GET['votarb'];
$que=mysql_query("SELECT * FROM hoteles WHERE id='".$get."'");
$fet=mysql_fetch_array($que);
$ip=$_SERVER['REMOTE_ADDR'];
$que2=mysql_query("SELECT * FROM votos WHERE ip='".$ip."'");
$fet2=mysql_num_rows($que2);
if(
$fet2 0) {
echo 
'<script>alert("Ya haz votado");</script>';
}else{
if(
$fet['id']) {
$get=$_GET['votarb'];
$ip=$_SERVER['REMOTE_ADDR'];
mysql_query("INSERT INTO votos(id,ip) VALUES ('$get','$ip')") or die(mysql_query());
echo 
'<script>alert("Se le ha sumado 1 voto al servidor '.$fet['nombre'].'");</script>';
}else{
echo 
'<script>alert("Esa ID no existe");</script>';
}
}

  #2 (permalink)  
Antiguo 15/11/2011, 21:37
 
Fecha de Ingreso: mayo-2011
Mensajes: 62
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Como mostrar los mas votados?

Que tal yo te recomendaría que crees un php que sea por ejemplo
losmasvotados.php
Y que ahí por ejemplo con un FOR o un WHILE y que vallas trayendo todas los hoteles que tengan mas de tantos votos
  #3 (permalink)  
Antiguo 15/11/2011, 22:08
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Como mostrar los mas votados?

Hola, puedes ocupar un ORDER BY votos DESC en la sentecnias SQL para ordenar los registros del numero de votos mas grande al menor, también puedes utilizar LIMIT en la sentencias SQL para acotar el número de registros que te dará dicha consulta.

Busca en google estos: (ORDER BY, LIMIT)

Saludos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #4 (permalink)  
Antiguo 16/11/2011, 01:34
 
Fecha de Ingreso: abril-2011
Ubicación: Los Mochis, Sinaloa, Mexico
Mensajes: 25
Antigüedad: 13 años
Puntos: 1
Respuesta: Como mostrar los mas votados?

Me podrian dar un ejemplo porfavor?
  #5 (permalink)  
Antiguo 16/11/2011, 05:16
Avatar de Antonio_España  
Fecha de Ingreso: mayo-2007
Mensajes: 58
Antigüedad: 16 años, 10 meses
Puntos: 4
Respuesta: Como mostrar los mas votados?

Código PHP:
Ver original
  1. mysql_query("Select * from NOMBRE_TABLA order by COLUMNA_VOTOS desc");

si quieres top 10:
Código PHP:
Ver original
  1. mysql_query("Select * from NOMBRE_TABLA order by COLUMNA_VOTOS desc limit 10");

luego puedes recorrer el resultado del query:

Código PHP:
Ver original
  1. <table>
  2. <?
  3.    $query = mysql_query("Select nombre,votos from NOMBRE_TABLA order by COLUMNA_VOTOS desc limit 10");
  4.    while ($a=mysql_fetch_array($query))
  5.    {
  6.       echo "<tr><td>Nombre: ".$a['nombre']."</td>";
  7.       echo "<td>Votos obtenidos: ".$a['votos']."</td></tr>"
  8.    }
  9. ?>
  10. </table>
__________________
Aprendiz autodidacta

Última edición por Antonio_España; 16/11/2011 a las 05:20 Razón: Añado info a la respuesta
  #6 (permalink)  
Antiguo 16/11/2011, 05:45
 
Fecha de Ingreso: noviembre-2007
Mensajes: 23
Antigüedad: 16 años, 4 meses
Puntos: 4
Respuesta: Como mostrar los mas votados?

Comprobando tus tablas, los ejemplos anteriores estarían correctos a falta de una función de SQL, "COUNT".

La sentencia SQL que necesitarías para mostrar, como ha dicho Antonio_España, los 10 más votados, sería la siguiente:

Código:
SELECT id, COUNT(id) 'votos' FROM votos GROUP BY id ORDER BY COUNT(id) DESC LIMIT 10

Etiquetas: mostrarmas, votacion, votados
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:03.