Foros del Web » Programando para Internet » PHP »

funcion contador visitas a link/articulo

Estas en el tema de funcion contador visitas a link/articulo en el foro de PHP en Foros del Web. He revisado varios temas en foros del web pero aun no encuentro la respuesta. La cuestión es que quiero saber cuantas veces un enlace/articulo es ...
  #1 (permalink)  
Antiguo 22/05/2010, 21:22
 
Fecha de Ingreso: noviembre-2009
Mensajes: 64
Antigüedad: 14 años, 5 meses
Puntos: 1
funcion contador visitas a link/articulo

He revisado varios temas en foros del web pero aun no encuentro la respuesta.

La cuestión es que quiero saber cuantas veces un enlace/articulo es visitado. Creo que no es algo difícil pero no lo he conseguido echar a andar.

mi idea es hacerlo en base a dos funciones, una que cuente y otra que muestre el valor.

la función para mostrar el valor es la siguiente:


Código PHP:
function lecturas () {
    global 
$tableposts$cache_lecturas,$use_cache$querycount;
    if  ((!
$cache_lecturas) || (!$use_cache)) {
    
$sql "select post_lecturas from $tableposts";
    
$result mysql_query($sql) or die('Oops, couldn\'t query the db for lecturas.');
    
$querycount;
    while (
$row mysql_fetch_object($result)) {
    
$cache_lecturas[$row->ID] = $row->post_lecturas;
        }
    }
    
$lecturas $cache_lecturas[$ID];
    return(
$lecturas);




Pero la que no logro construir es la función que cuente. he pensado dos cosas, que el link tenga una función asociada o que cada vez que se visite el articulo del link se active la función. La primera opción no se como hacerla, así que he intentado la segunda, que en un supuesto solo tendría que hacer un update a post_lecturas de la tableposts.

la idea la copie de un tema aqui en foros del web, pero no funciona


Código PHP:
if ( $_REQUEST['ID']  ) 

    
$select mysql_query("select post_lecturas from posts");
    
$select mysql_query("update posts set post_lecturas=post_lecturas+1 where ID=".$_REQUEST['ID']." ");
     
    

creo que donde falla es en el $request

...

por otra parte he pensado que se puede agregar directamente a la función que me da el link a los articulos, que es esta:

Código PHP:
function permalink_single($file='') {
    global 
$id,$postdata,$pagenow;
    global 
$querystring_start$querystring_equal$querystring_separator;
    if (
$file=='')
        
$file=$pagenow;
    echo 
$file.$querystring_start.'p'.$querystring_equal.$id;

pero no tengo muy claro de como agregarla. pienso que podría ser agregando el update despues de $file=$pagenow;


Espero que alguien pueda orientarme.

saludos

gracias
  #2 (permalink)  
Antiguo 23/05/2010, 10:44
Avatar de mark_ant0n  
Fecha de Ingreso: enero-2009
Ubicación: Comitan, Chiapas mx
Mensajes: 388
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: funcion contador visitas a link/articulo

okmira espero poder ayudarte, cuando entren a leer tu nota haces esto
Código PHP:
Ver original
  1. $consulta=mysql_query("UPDATE post SET visitas=visitas+1 WHERE idpost=$id");
donde $id es el numero de identificcion del post
Espero haber entendido bien, saludos
__________________
"Diseño de software a la medida"

http://www.sadhoc.com
  #3 (permalink)  
Antiguo 25/05/2010, 09:40
 
Fecha de Ingreso: noviembre-2009
Mensajes: 64
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: funcion contador visitas a link/articulo

gracias. bueno

la sentencia mysql funciona, pero aun no consigo que cada vez que visiten el articulo se update la tabla automaticamente.

puse un include de la siguiente manera:


Código PHP:
<?php

$id 
$_REQUEST['id'];

$consulta=mysql_query("update posts set post_lecturas=post_lecturas+1 WHERE id=$id");

?>
pero no funciona.

y si lo pongo con un if dentro de la cabecera, tampoco

Código PHP:
 if ($id $_REQUEST['id']  )  
{  
   
  
$consulta=mysql_query("UPDATE b2posts SET post_lecturas=post_lecturas+1 WHERE id=$id");
      
     

o sea que no entendí de donde hay que sacar la variable $consulta

o como hacer propiamente la consulta del update.



por cierto, manualmente update el campo post_lecturas, pero la llamada a la funcion no arroja el número de lecturas:

Código PHP:
<?php echo $lecturas?>

<?php lecturas(): ?>

Código PHP:
function lecturas () { 
    global 
$tableposts$cache_lecturas,$use_cache$querycount
    if  ((!
$cache_lecturas) || (!$use_cache)) { 
    
$sql "select post_lecturas from $tableposts"
    
$result mysql_query($sql) or die('Oops, couldn\'t query the db for lecturas.'); 
    
$querycount
    while (
$row mysql_fetch_object($result)) { 
    
$cache_lecturas[$row->ID] = $row->post_lecturas
        } 
    } 
    
$lecturas $cache_lecturas[$ID]; 
    return(
$lecturas); 




pero no se que es, según yo está bien.


cómo ven?

saludos
  #4 (permalink)  
Antiguo 29/05/2010, 09:31
 
Fecha de Ingreso: noviembre-2009
Mensajes: 64
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: funcion contador visitas a link/articulo

Hola.

buscando en foros del web. encontre que la funcion count me puede ayudar a mostrar el numero de visitas a un articulo.

se supone que cada vez que miro un articulo, el campo post_lecturas de la tabla se aumenta en 1.

la funcion para que me de el numero de lecturas por cada articulo que he hecho, es esta. (la anterior no funciono)

Código PHP:
function lecturas () {
    global 
$tableposts,$id;
    
$sql mysql_query("SELECT COUNT(post_lecturas) FROM $tableposts WHERE id = '$id'");
    
$result mysql_query($sql);
    
$lecturas mysql_fetch_array($result);
    echo 
"$lecturas";

pero creo que tiene un error, porque no me arroja la consuta.

la llamo así <?php echo $lecturas; ?>

pero no da resultado.

ayuda por favor. me estoy iniciando en la construccion de funciones...

gracias
  #5 (permalink)  
Antiguo 29/05/2010, 13:20
 
Fecha de Ingreso: noviembre-2009
Mensajes: 64
Antigüedad: 14 años, 5 meses
Puntos: 1
De acuerdo Respuesta: funcion contador visitas a link/articulo

al final, lo solucione quitando la funcion count, ademas el mysql_query estaba repetido

quedo así:

Código PHP:
function lecturas () { 
   global 
$tableposts,$id
   
$sql mysql_query("SELECT post_lecturas FROM $tableposts WHERE id = '$id'"); 
   
$lecturas mysql_fetch_array($sql); 
   echo 
"$lecturas[0]"



y ya funciona!!

ahora creo que solo me falta la funcion que cuente cada vez que el articulo es visitado.

si alguien tiene una sugerencia se agradecera.

hasta ahora lo que tengo es:

Código PHP:

/*lecturas*/    
if($p) {
$lecturasmysql_query("Select post_lecturas from $tableposts where id='$id'");
if(
$lecturas=mysql_fetch_array($lecturas)) {
  if (
$lecturas == 0){
  
$lecturas $lecturas 1;
  
mysql_query("Insert into tableposts(post_lecturas) values ($lecturas) where id='$id'");
  }else {
  
$lecturas $lecturas 1;
  
mysql_query("Update $tableposts Set post_lecturas='$lecturas' where id='$id'");

        } 
    }

???

Etiquetas: contador, funcion, visitas
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 22:31.