Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: musicaward en 28 Mayo 2011, 03:02 am



Título: Mostrar 10 registros mas vistos
Publicado por: musicaward en 28 Mayo 2011, 03:02 am
Hola amigos , tengo una tabla llamada peliculas en ella almaceno id nombre imagen , etc , le acabo de agregar un campo llamado hits (todavia esta en blanco x$ )

mi consulta es quiero mostrar las 10 id , o 10 registros + mas vistos  , he visto algunos mensajes pero me han quedado poco claros :pensando:

pero para eso aconsejan crear un campo hits o visitas donde se incrementara +1 por cada vez que se abra dicha id

Vi algo por hay que deberia hacer el siguiente codigo que pongo abajo no es mio solo lo tome de un ejemplo que encontre

Código:
//recoges con GET la variable titulo del link 
$titulo = $_GET['titulo'];
$sql = "SELECT titulo, enlace1 FROM pelis WHERE titulo='$titulo'";  
$result = mysql_query($sql,$link);
$row = mysql_fetch_array($result);  
$enlace=$row['enlace1'];
mysql_query("UPDATE pelis SET vecesvista=vecesvista+1 WHERE titulo='$titulo'",$link);
mysql_close($link);

me echan una manita  o algun consejo :-)


Título: Re: Mostrar 10 registros mas vistos
Publicado por: Shell Root en 28 Mayo 2011, 06:45 am
Pues sería algo más simple como por ejemplo, supongamos que estamos viendo la noticia. La URL quedaría así
Código
  1. # http://127.0.0.1/PoC/noticia.php?idNoticia=1234

Ahora sólo tienes que tomar el idNoticia e incrementarle el campo HIT,
Código
  1.  $idNoticia = $_GET['idNoticia'];
  2.  $sql = "UPDATE pelis SET hit = '".$cont."' WHERE( idNoticia = '".$idNoticia."' );";
  3.  $query = mysql_query( $sql, $cnn );
  4.  if(!$query){
  5.    print "Error al ejecutar la query.";
  6.  }
Para $cont, debes de realizar un SELECT para averiguar el valor actual.


Título: Re: Mostrar 10 registros mas vistos
Publicado por: <<<-Basura->>> en 28 Mayo 2011, 07:41 am
Creo que lo que quieres hacer es mostrar los ld mas abiertos, creo que el algoritmo de la burbuja serviría en este caso para acomodar de mayor a menor


Título: Re: Mostrar 10 registros mas vistos
Publicado por: Shell Root en 28 Mayo 2011, 07:54 am
Eso no tiene que ver, puedes hacer una consulta y ordenarlos así,
Código
  1. SELECT "nombre_columna"
  2. FROM "nombre_tabla"
  3. [WHERE "condición"]
  4. ORDER BY "nombre_columna" [ASC, DESC]


Título: Re: Mostrar 10 registros mas vistos
Publicado por: Ari Slash en 28 Mayo 2011, 08:19 am
Holas

para aumentar el contador, haces lo que te dice shellroot, claro que en esta linea:
Código
  1. $sql = "UPDATE pelis SET hit = '".$cont."' WHERE( idNoticia = '".$idNoticia."' );";
yo usaria un sprintf()

y para mostrar las 10 id mas vistas, es practicamente lo mismo que acaba de escribir shellroot pero mas acomodado:
Código
  1. SELECT id,nombre FROM peliculas ORDER BY hits DESC
y tomas solo los 10 primeros registros.

Saludos


Título: Re: Mostrar 10 registros mas vistos
Publicado por: musicaward en 28 Mayo 2011, 17:59 pm
yo tengo mi web asi
Citar
http://127.0.0.1/PoC/Peliculas_1.php?id=4

no logro tomar el valor del id y no lo logro implemtar  :-(

puse :

Código:
  $idNoticia = $_GET['id'];
  $sql = "UPDATE peliculas SET Hits = '".$cont."' WHERE( id = '".$idNoticia."' );";
  $query = mysql_query( $sql, $cnn );
  if(!$query){
    print "Error al ejecutar la query.";
  }

me sale el print del error

>Warning</b>:  mysql_query() expects parameter 2 to be resource, null given in <b>/home/*****/public_html/Peliculas_1.php</b> on line <b>55<


Título: Re: Mostrar 10 registros mas vistos
Publicado por: Shell Root en 28 Mayo 2011, 21:39 pm
Supongo que ya tienes la conexión, no?


Título: Re: Mostrar 10 registros mas vistos
Publicado por: musicaward en 28 Mayo 2011, 22:04 pm
si lo tengo acabo de solucionar el error , el codigo quedo asi para algun despitado como yo que le sirva  :xD

Código
  1. $idNoticia = $_GET['id'];  
  2.  $sql = "UPDATE peliculas SET Hits = Hits + 1 WHERE( id = '".$idNoticia."' );";  
  3.  $query = mysql_query( $sql);  
  4.  if(!$query){  
  5.    print "Error al ejecutar la query.";  
  6.  }
va de 10 y lo llamo por un select y se cumple lo que necesitaba  ;-)


Título: Re: Mostrar 10 registros mas vistos
Publicado por: bomba1990 en 29 Mayo 2011, 03:41 am
creo que seria bueno siempre en cualquier consulta establacer un limite, y si solo quieres 10 puedes hacer:

Código
  1. SELECT id,nombre FROM peliculas ORDER BY hits DESC LIMIT 10