Foros del Web » Programando para Internet » PHP »

ayuda para resolver contador de visitas

Estas en el tema de ayuda para resolver contador de visitas en el foro de PHP en Foros del Web. Mi problema es el siguiente: En una página necesito mostrar en tres columnas lo siguiente: Nombre de Usuario – Total vistas por Usuario – Fecha ...
  #1 (permalink)  
Antiguo 28/07/2007, 14:18
 
Fecha de Ingreso: julio-2007
Mensajes: 287
Antigüedad: 16 años, 9 meses
Puntos: 4
Pregunta ayuda para resolver contador de visitas

Mi problema es el siguiente:
En una página necesito mostrar en tres columnas lo siguiente:

Nombre de UsuarioTotal vistas por UsuarioFecha Última Visita Usuario.

Para imprimir el listado de usuarios no tengo problemas pero para poner al lado de cada uno de ellos el total de veces que ha entrado y la fecha de su última visita, no hay caso.

Para esto cuento con dos tablas:
Usuarios y visitas.

En este momento tengo funcionando este sistemita por separado, pero necesito mostrarlo en una sola página.
Este es el código que tengo en una página para imprimir los usuarios registrados y funciona perfectamente:

<?PHP
$sqlclientes="SELECT NomEmp from clientes order by NomEmp ASC";
$res= mysql_query($sqlclientes) or die (mysql_error());
echo "<table class='bodyText1' width='90%' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td class='bodyText9' width='50%' height='23'><div align='left'>Nombre Usuario</div></td>
<td class='bodyText9' width='20%' height='23'><div align='left'>Total Visitas</div></td>
<td class='bodyText9' width='10%' height='23'><div align='center'>Última visita</div></td>
</tr>";
while($row=mysql_fetch_array($res))
{
$NomEmp=$row['NomEmp'];
$rut=$row['rut'];
$id=$row['id'];

echo"<tr>
<td><div align='left'>$NomEmp</div></td>
<td><div align='left'></div></td>
<td><div align='center'>$fecha</div></td>
<tr>
<td colspan='3'><div align='center'><img src='ima/rul2.jpg' width='100%' height='12' /></div></td>
</tr>
</tr>";
}
echo "</table>";
?>

Y con este otro código(en otra página) imprimo el total de visitas y la fecha de la última visita de un usuario, que también funciona sin problema.

<?php

//miro a ver el n&uacute;mero total de campos que hay en la tabla con esa b&uacute;squeda
$sql = "SELECT id,COUNT(*) as rut FROM visitas where rut='$rut'GROUP BY id";
$res= mysql_query($sql) or die (mysql_error());
$num_rows = mysql_num_rows($res);
//echo $num_rows ."&nbsp;/ Fecha última visita:&nbsp;";

$sqlfecha="select * from visitas where rut='$rut' order by fecha ASC";
$resultado=mysql_query($sqlfecha)or die(mysql_error());
while($row=mysql_fetch_array($resultado))
{
$fecha=$row['fecha'];
$rut=$row['rut'];
}
echo $num_rows."&nbsp; / Fecha última visita:&nbsp;".$fecha;
?>
Cómo puedo hacer funcionar estos dos códigos conjuntamente, de manera que pueda imprimir a todos los usuarios y el total de visitas de cada uno de ellos junto con la fecha de la última vez que entro como lo señalaba en un principio?
Mil Gracias!
  #2 (permalink)  
Antiguo 28/07/2007, 15:20
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años, 1 mes
Puntos: 36
Re: ayuda para resolver contador de visitas

Prueba con esto(no estoy seguro de ello):
Código PHP:
<?PHP
//miro a ver el n&uacute;mero total de campos que hay en la tabla con esa b&uacute;squeda 
$sql "SELECT id,COUNT(*) as rut FROM visitas where rut='$rut'GROUP BY id"
$resmysql_query($sql) or die (mysql_error());
$num_rows mysql_num_rows($res);
//echo $num_rows ."&nbsp;/ Fecha última visita:&nbsp;";

$sqlfecha="select * from visitas where rut='$rut' order by fecha ASC";
$resultado=mysql_query($sqlfecha)or die(mysql_error());
$sqlclientes="SELECT NomEmp from clientes order by NomEmp ASC";
$res2mysql_query($sqlclientes) or die (mysql_error());
while(
$row=mysql_fetch_array($resultado))
{
$fecha .=$row['fecha'];
$rut .=$row['rut'];
}
echo 
"<table class='bodyText1' width='90%' border='0' cellspacing='0' cellpadding='0'>
 <tr>
 <td class='bodyText9' width='50%' height='23'><div align='left'>Nombre Usuario</div></td>
 <td class='bodyText9' width='20%' height='23'><div align='left'>Total Visitas</div></td>
 <td class='bodyText9' width='10%' height='23'><div align='center'>Última visita</div></td>
 </tr>"
;
while(
$row=mysql_fetch_array($res2))
 {
    
$NomEmp=$row['NomEmp'];
    
$rut=$row['rut'];
    
$id=$row['id'];

  echo
"<tr>
 <td><div align='left'>$NomEmp</div></td>
   <td><div align='left'></div></td>
 <td><div align='center'>$fecha</div></td>
 <tr>
<td colspan='3'><div align='center'><img src='ima/rul2.jpg' width='100%' height='12' /></div></td>
  </tr>
</tr>"
;
echo 
$num_rows."&nbsp; / Fecha última visita:&nbsp;".$fecha;
}
echo 
"</table>";
  
?>
  #3 (permalink)  
Antiguo 28/07/2007, 16:00
 
Fecha de Ingreso: julio-2007
Mensajes: 287
Antigüedad: 16 años, 9 meses
Puntos: 4
Pregunta Re: ayuda para resolver contador de visitas

No resulto amigo. De todas maneras muchas gracias.
Me he roto la cabeza tratando se solucionarlo y no hay caso.
Si alguine más pudiera cooperar con mi problema.
Gracias
  #4 (permalink)  
Antiguo 28/07/2007, 16:53
 
Fecha de Ingreso: enero-2006
Mensajes: 293
Antigüedad: 18 años, 3 meses
Puntos: 4
Re: ayuda para resolver contador de visitas

¿Como ligas las tablas?, si es por el ID prueba esto:

Código PHP:
$sql="SELECT id, NomEmp from clientes order by NomEmp ASC";
$result=mysql_query($sql);
while(
$row=mysql_fetch_array($result)){
  
$NomEmp=$row['NomEmp'];
  
$id=$row['id'];

  
$sql2"SELECT COUNT(*) as rut FROM visitas where id='$id'";
  
$result2=mysql_query($sql2);
  while(
$row2=mysql_fetch_row($result2)){
    
$rut=$row2[0];
  }

  
$sql2="select fecha from visitas where id='$id' order by fecha";
  
$result2=mysql_query($sql2);
  while(
$row2=mysql_fetch_row($result2)){
    
$ultima=$row2[0];
  }


No es muy eficiente, pero creo yo que funciona.
  #5 (permalink)  
Antiguo 28/07/2007, 17:31
 
Fecha de Ingreso: julio-2007
Mensajes: 287
Antigüedad: 16 años, 9 meses
Puntos: 4
Pregunta Re: ayuda para resolver contador de visitas

A que te refieres con ligar las tablas osvier, a unir dos tablas con un solo select o quey?
Pues la verdad no he unido nada. Simplemente pretendía colocar distintos select dentro de las tablas html para "lograr mi objetivo".

Probé lo tuyo y no me funciona o algo hice mal.
  #6 (permalink)  
Antiguo 28/07/2007, 19:13
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 1 mes
Puntos: 10
Re: ayuda para resolver contador de visitas

A lo que se refiere osvier es cómo están relacionadas las tablas, porque me supongo que están relacionadas.

Si están relacionadas JOIN te servirá.
__________________
TolerantX
http://tolerantx.com
Linux User #385226
  #7 (permalink)  
Antiguo 29/07/2007, 01:40
 
Fecha de Ingreso: enero-2006
Mensajes: 293
Antigüedad: 18 años, 3 meses
Puntos: 4
Re: ayuda para resolver contador de visitas

Sorry...me ausenté por un rato. Exactamente lo que dice TolerantX, con "ligar" las tablas, me refiero a con que campo las relacionas entre sí....en la estructura de tus tablas, tu claves foraneas (foreign key)...

Esto es, si en tu tabla "visitas", tienes un campo "id" que guarda el valor del id de usuario.... o como sabes que cierto registro en tu tabla "visitas", pertenece al usuario "x", por decir algo?
  #8 (permalink)  
Antiguo 29/07/2007, 12:31
Avatar de eskorbutin  
Fecha de Ingreso: junio-2006
Mensajes: 65
Antigüedad: 17 años, 10 meses
Puntos: 2
Re: ayuda para resolver contador de visitas

Segun pienso yo, lo puedes unir en una sola tabla.

Supongo que tienes una pagina donde haces un INSERT cada vez que el usuario registrado entra. Puedes usar una tabla que contenga los campos Usuario, Numero_visitas y ultima_visita.

En la pagina donde haces el INSERT tienes que hacer algo como esto:

Código:
Consultar la tabla WHERE usuario = el usuario que esta visitando
si ya existe el usuario
     seleccionar el campo numero_visitas
     aumentar en uno el numero de visitas
     actualizar el campo numero_visitas y tambien la fecha actual donde usuario = usuario que esta visitando la página
si no existe
     insertar el nuevo usuario, usuario = usuario que visita la pagina, numero_visitas = 1, ultima_visita = fecha actual
termina condicion
y en la pagina donde quieres poner la tabla pues simplemente haces la consulta a la tabla e imprimes las filas en pantalla.



Asi te ahorras de que cada vez que el usuario visita la pagina insertas una nueva fila.
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:58.