elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Mostrar 10 registros mas vistos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Mostrar 10 registros mas vistos  (Leído 5,346 veces)
musicaward

Desconectado Desconectado

Mensajes: 25



Ver Perfil WWW
Mostrar 10 registros mas vistos
« 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 :-)


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Mostrar 10 registros mas vistos
« Respuesta #1 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.


« Última modificación: 28 Mayo 2011, 06:48 am por Shell Root » En línea

Te vendería mi talento por poder dormir tranquilo.
<<<-Basura->>>


Desconectado Desconectado

Mensajes: 388



Ver Perfil
Re: Mostrar 10 registros mas vistos
« Respuesta #2 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
En línea

<<<--Basura-->>>
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Mostrar 10 registros mas vistos
« Respuesta #3 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]
En línea

Te vendería mi talento por poder dormir tranquilo.
Ari Slash


Desconectado Desconectado

Mensajes: 1.783



Ver Perfil WWW
Re: Mostrar 10 registros mas vistos
« Respuesta #4 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
En línea

musicaward

Desconectado Desconectado

Mensajes: 25



Ver Perfil WWW
Re: Mostrar 10 registros mas vistos
« Respuesta #5 en: 28 Mayo 2011, 17:59 pm »

yo tengo mi web asi
Citar

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<
« Última modificación: 28 Mayo 2011, 18:01 pm por musicaward » En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Mostrar 10 registros mas vistos
« Respuesta #6 en: 28 Mayo 2011, 21:39 pm »

Supongo que ya tienes la conexión, no?
En línea

Te vendería mi talento por poder dormir tranquilo.
musicaward

Desconectado Desconectado

Mensajes: 25



Ver Perfil WWW
Re: Mostrar 10 registros mas vistos
« Respuesta #7 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  ;-)
« Última modificación: 28 Mayo 2011, 22:07 pm por musicaward » En línea

bomba1990


Desconectado Desconectado

Mensajes: 395



Ver Perfil WWW
Re: Mostrar 10 registros mas vistos
« Respuesta #8 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
En línea

"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines