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
//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 :-)
Pues sería algo más simple como por ejemplo, supongamos que estamos viendo la noticia. La URL quedaría así
# http://127.0.0.1/PoC/noticia.php?idNoticia=1234
Ahora sólo tienes que tomar el idNoticia e incrementarle el campo HIT,
$idNoticia = $_GET['idNoticia'];
$sql = "UPDATE pelis SET hit = '".$cont."' WHERE( idNoticia = '".$idNoticia."' );";
$query = mysql_query( $sql, $cnn );
if(!$query){
print "Error al ejecutar la query.";
}
Para $cont, debes de realizar un SELECT para averiguar el valor actual.
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
Eso no tiene que ver, puedes hacer una consulta y ordenarlos así,
SELECT "nombre_columna"
FROM "nombre_tabla"
[WHERE "condición"]
ORDER BY "nombre_columna" [ASC, DESC]
Holas
para aumentar el contador, haces lo que te dice shellroot, claro que en esta linea:
$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:
Select id,nombre from peliculas order by hits desc
y tomas solo los 10 primeros registros.
Saludos
yo tengo mi web asi
Citarhttp://127.0.0.1/PoC/Peliculas_1.php?id=4
no logro tomar el valor del id y no lo logro implemtar :-(
puse :
$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<
Supongo que ya tienes la conexión, no?
si lo tengo acabo de solucionar el error , el codigo quedo asi para algun despitado como yo que le sirva :xD
$idNoticia = $_GET['id'];
$sql = "UPDATE peliculas SET Hits = Hits + 1 WHERE( id = '".$idNoticia."' );";
$query = mysql_query( $sql);
if(!$query){
print "Error al ejecutar la query.";
}
va de 10 y lo llamo por un select y se cumple lo que necesitaba ;-)
creo que seria bueno siempre en cualquier consulta establacer un limite, y si solo quieres 10 puedes hacer:
SELECT id,nombre FROM peliculas ORDER BY hits DESC limit 10