Foros del Web » Programando para Internet » PHP »

contador de visitas

Estas en el tema de contador de visitas en el foro de PHP en Foros del Web. Hola ando en busca de ayuda, porque yo no me doy cuenta como acerlo.. tengo este script el cual anda bien.. Código PHP: Desarrollo del contador Primero crearemos una tabla llamada contador en nuestra base de datos  ...
  #1 (permalink)  
Antiguo 10/12/2012, 13:56
 
Fecha de Ingreso: marzo-2011
Mensajes: 115
Antigüedad: 13 años, 1 mes
Puntos: 0
contador de visitas

Hola ando en busca de ayuda, porque yo no me doy cuenta como acerlo..
tengo este script el cual anda bien..

Código PHP:
Desarrollo del contador

Primero crearemos una tabla llamada contador en nuestra base de datos 

CREATE TABLE contador ( 
    id int auto_increment, 
    ip varchar(20) not null, 
    num_votos varchar(30) default 0 not null, 
    fecha datetime not null, 
    PRIMARY KEY(id) 
)

Creamos un archivo con la configuración de la base de datos llamado conf.php

<?php 
$server
="localhost"
$username="root"
$password=""
$dataBase="ejemplos"

$link=mysql_connect($server$username$password
      or die(
"Problemas en la conexión: ".mysql_error()); 

$db=mysql_select_db($dataBase$link
        or die(
"Problemas al seleccionar la base de datos: ".mysql_error()); 
?>

Creamos el código del contador contador.php

<?php

//conf.php, archivo de configuración de la base de datos

include(‘conf.php’);

//IP DEL VISITANTE

$ip $_SERVER['REMOTE_ADDR'];

/*Seleccionamos la ip, la diferencia en tiempo entre la fecha actual y la almacenada

* en la base de datos, con la función de mysql TIMEDIFF(fecha de inicio, fecha final)

*/

$sql="select ip, TIMEDIFF(NOW(), fecha), fecha, num_visitas from contador where ip=’$ip’";

//Ejecutamos la instrucción SQL

$rs=mysql_query($sql) or die("Problemas al ejecutar select SQL ".mysql_error());

/*Almacenados el resultado de la instrucción SQL en un arreglo asociativo con la función

mysql_fetch_array */

$fila=mysql_fetch_array($rs);

$tiempo=$fila[1]; //Diferencia entre fecha guardada y fecha actual

$num_visitas=$fila[3]; //Número de visitas

$horas_t=substr($tiempo,0,2); //Número de horas transcurridas

$tiemRes 5//Varible de tiempo en horas para restringir la visita

/*Contamos el número de registros obtenidos en la consulta anterior, si el numero

* obtenido es igual a cero es porque dicho visitante es nuevo en el sito

* entonces agregamos su ip a la base de datos junto con un 1 y la fecha actual */

if (mysql_num_rows($rs)==0

{

$sql="insert into contador(ip, num_visitas, fecha) values(‘$ip’, 1, NOW())";

mysql_query($sql) or die("Problemas al ejecutar la insert SQL ".mysql_error());

}

/* Si el número de registros obtenidos es mayor a cero es porque dicho visitante ha vuelto a ingresar al

* sitio, y si su tiempo transcurrido es mayor a 5 horas desde la primera vez que ingreso

* entonces actualizamos su número de votos agregando sumando 1 al valor actual,

* tambien actualizamos la fecha de su ultimo ingreso a la fecha actual

* */

//Si la ip existe y han transcurrido 5hrs

elseif (mysql_num_rows($rs) > && $horas_t $tiemRes

{

$sql="update contador set fecha=NOW(), num_visitas=’$num_visitas’+1 where ip=’$ip’";

mysql_query($sql) or die("Problemas al ejecutar update SQL ".mysql_error());

}

$sql="select SUM(num_visitas) from contador"//Obtenemos la suma de todas las visitas

$rs=mysql_query($sql) or die("Problemas al ejecutar select SQL ".mysql_error());

$fila=mysql_fetch_array($rs); //Almacenanos el resultado de la consulta en un arreglo

$num_visitas=$fila[0]; //Número de visitas

mysql_close($link);

?>

Y por último creamos un archivo llamado visitas.php que será el que debemos incluir donde queramos mostrar el número de visitas

<?php

include(‘contador.php’);

echo 
$num_visitas;

?>
lo que quiero es que me de las visitas a otra tabla.. pero no se como hacerlo?
  #2 (permalink)  
Antiguo 10/12/2012, 14:46
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: contador de visitas

No te entiendo. ¿A qué te refieres con que te de las visitas a otra tabla?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 10/12/2012, 16:31
 
Fecha de Ingreso: marzo-2011
Mensajes: 115
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: contador de visitas

se como hacerlo, pero lo que pasa es que lo que hace es agregar los datos a toda la tabla
Código SQL:
Ver original
  1. Estructura de tabla para la tabla `formulario_clasificados`
  2. --
  3.  
  4. CREATE TABLE IF NOT EXISTS `formulario_clasificados` (
  5.   `id_rubro` INT(11) NOT NULL AUTO_INCREMENT,
  6.   `departamentos` VARCHAR(11) COLLATE utf8_spanish_ci NOT NULL,
  7.   `precio` VARCHAR(255) CHARACTER SET latin1 DEFAULT NULL,
  8.   `Moneda` VARCHAR(11) COLLATE utf8_spanish_ci DEFAULT NULL,
  9.   `Titulo` VARCHAR(255) CHARACTER SET latin1 DEFAULT NULL,
  10.   `Descripcion` VARCHAR(255) CHARACTER SET latin1 DEFAULT NULL,
  11.   `Direccion` VARCHAR(255) CHARACTER SET latin1 DEFAULT NULL,
  12.   `Codigo_Postal` VARCHAR(255) CHARACTER SET latin1 DEFAULT NULL,
  13.   `email` VARCHAR(255) CHARACTER SET latin1 DEFAULT NULL,
  14.   `telefono` VARCHAR(255) CHARACTER SET latin1 DEFAULT NULL,
  15.   `Imagen` VARCHAR(255) COLLATE utf8_spanish_ci DEFAULT NULL,
  16.   `Imagen0` VARCHAR(255) COLLATE utf8_spanish_ci DEFAULT NULL,
  17.   `Imagen1` VARCHAR(255) COLLATE utf8_spanish_ci DEFAULT NULL,
  18.   `Imagen2` VARCHAR(255) COLLATE utf8_spanish_ci DEFAULT NULL,
  19.   `video` VARCHAR(100) COLLATE utf8_spanish_ci DEFAULT NULL,
  20.   `fecha` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  21.   `id_clas` INT(11) DEFAULT NULL,
  22.   `id_subclas` INT(11) DEFAULT NULL,
  23.   `id_user` INT(11) DEFAULT NULL,
  24.   `id_favorito` INT(11) DEFAULT NULL,
  25.   `visitas` INT(11) DEFAULT '1',
  26.   PRIMARY KEY (`id_rubro`)
  27. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=48 ;

`visitas` int(11) DEFAULT '1', este campo lo llena bien

pero los otros los deja Null y no quiero que agregue nuevos datos, sino que agregue si las visitas a los que ya estan guardados se entiende?
  #4 (permalink)  
Antiguo 10/12/2012, 23:31
Avatar de web2013  
Fecha de Ingreso: diciembre-2012
Ubicación: Peru
Mensajes: 19
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: contador de visitas

Hola ofertasdiarias

Creo que si solo quieres que guarde el campo de `visitas` mejor creas una nueva tabla conteniendo solo este campo. Pues siempre se guardar un valor por defecto en los otros campos si no pasas ningun parametro.
  #5 (permalink)  
Antiguo 11/12/2012, 14:03
 
Fecha de Ingreso: marzo-2011
Mensajes: 115
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: contador de visitas

claro eso fue lo que hice pero no me doy cuenta como hacer para que se vincule con el anuncio que crea cada usuario..

gracias!!

Etiquetas: contador, mysql, sql, tabla
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 09:13.