Foros del Web » Programando para Internet » PHP »

ayuda para mostrar los 5 usuarios mas activos de mi web!

Estas en el tema de ayuda para mostrar los 5 usuarios mas activos de mi web! en el foro de PHP en Foros del Web. Amigos necesito ayuda con un script necesito crear un script que me muestre el usuario mas activo de la web es decir que entra mas ...
  #1 (permalink)  
Antiguo 17/06/2010, 23:45
 
Fecha de Ingreso: mayo-2010
Mensajes: 99
Antigüedad: 13 años, 10 meses
Puntos: 1
ayuda para mostrar los 5 usuarios mas activos de mi web!

Amigos necesito ayuda con un script necesito crear un script que me muestre el usuario mas activo de la web es decir que entra mas a la web mediante login, para no exigir mucho jeje solo con eso me basta quiero mostrar los 5 usuarios que mas entren a mi web mostrandolos de 1er lugar a 5to lugar con un php!

Gracias de Antemano Amigos! :D :D
  #2 (permalink)  
Antiguo 18/06/2010, 00:05
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 2 meses
Puntos: 13
Respuesta: ayuda para mostrar los 5 usuarios mas activos de mi web!

crea una tabla en base de datos que almacene el id del usuario y campo numero de veces que ha ingresado ..

al loguerse, toma la info de la tabla y le agregas $numero+1

luego toma el campo para mostrarlo donde if $numero <2 = segundo lugar
if $numero > 10 ...mejor lugar etc etc

otra forma seria con id autoincrementable

pero hacerlo de culquier manera es mas complejo que esto ya que deberas tener en cuenta que no se sume mas de una vez el dato, crear un session para esto, etc etc

saludos!!
  #3 (permalink)  
Antiguo 18/06/2010, 00:09
 
Fecha de Ingreso: mayo-2010
Mensajes: 99
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: ayuda para mostrar los 5 usuarios mas activos de mi web!

Bueno Amigo el problema es que soy un poco novato en esto de Php te entiendo y yo sabia esa idea aunque desde un punto de vista diferente con mi logica pero igual, mi problema es el no saber manejar mucho php men por eso necesito que me ayuden con el script!
  #4 (permalink)  
Antiguo 18/06/2010, 00:22
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 14 años, 11 meses
Puntos: 14
Respuesta: ayuda para mostrar los 5 usuarios mas activos de mi web!

Creas una tabla visitas, con campos: usuario (llave foranea de la tabla usuarios) fecha(tipo date) y hora (time). Luego, cada que un usuario inicie sesión, creas un registro en la tabla visitas con el usuario, la fecha y hora.

¿Cómo saber quienes tienen más actividad?
R:// Con una simple consulta a tu tabla visitas.
Código MySQL:
Ver original
  1. SELECT usuario, count(*) FROM visitas GROUP BY usuario DESC LIMIT 5;

Y el resultado de la consulta será los 5 usuario que más visitan tu web.


Saludos.
__________________
Sólo quien nunca nada hace, nunca se equivoca.
  #5 (permalink)  
Antiguo 18/06/2010, 00:31
 
Fecha de Ingreso: mayo-2010
Mensajes: 99
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: ayuda para mostrar los 5 usuarios mas activos de mi web!

es decir que cada ves que haga login el usuario envie datos a la tabla visitas? la fecha y la hora mas el id del usuario no? en pocas palabras que ademas de que el formulario haga login tambien me envie los datos q dices a la tabla visitas?
  #6 (permalink)  
Antiguo 18/06/2010, 00:44
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 14 años, 11 meses
Puntos: 14
Respuesta: ayuda para mostrar los 5 usuarios mas activos de mi web!

Correcto, de esa forma llevas un control de las visitas de los usuarios, y que además te permite (entre otras más consultas) saber quienes son los cinco (5) usuario más activos.
__________________
Sólo quien nunca nada hace, nunca se equivoca.
  #7 (permalink)  
Antiguo 18/06/2010, 00:56
 
Fecha de Ingreso: mayo-2010
Mensajes: 99
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: ayuda para mostrar los 5 usuarios mas activos de mi web!

ok Amigo lo probare a ver como dices! :D cualquier cosa si puedes dejame tu correo si no es mucha molestia...!

Gracias por tu ayuda!
  #8 (permalink)  
Antiguo 18/06/2010, 21:15
 
Fecha de Ingreso: mayo-2010
Mensajes: 99
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: ayuda para mostrar los 5 usuarios mas activos de mi web!

amigo tengo un problema a la hora de insertar los datos en mysql con el mismo script de login.php me inserta de a 3 registro en uno solo y no se por que amigos podran ayudarme? Graciasssss!... y de que manera debo insertar los datos time?

este recibe los datos de login para checkear el ingreso y estoy agregando para poder insertar al mismo tiempo en la bd! Ayuda!
Código PHP:
<?php session_start(); ?>
<?php 
require_once('Connections/xtremebook.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  if (
PHP_VERSION 6) {
    
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}
?>
<?php
//funcion session start para comprobar la sesion si es correcta de
if (!isset($_SESSION)) {
session_start();
}

$loginFormAction $_SERVER['PHP_SELF'];
if (isset(
$_GET['accesscheck'])) {
  
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset(
$_POST['NOMBREUSUARIO'])) {
  
$loginUsername=$_POST['NOMBREUSUARIO'];
  
$password=$_POST['CONTRASENA'];
  
$MM_fldUserAuthorization ="ID";
  
$MM_redirectLoginSuccess "bienvenida.php";
  
$MM_redirectLoginFailed "error.php";
  
$MM_redirecttoReferrer false;
  
mysql_select_db($database_xtreme_book$xtremebook);
      
  
$LoginRS__query=sprintf("SELECT NOMBREUSUARIO, CONTRASENA, ID FROM registro WHERE NOMBREUSUARIO=%s AND CONTRASENA=%s",
  
GetSQLValueString($loginUsername"text"), GetSQLValueString($password"text")); 
   
  
$LoginRS mysql_query($LoginRS__query$xtremebook) or die(mysql_error());
  
$loginFoundUser mysql_num_rows($LoginRS);
  if (
$loginFoundUser) {
    
    
$loginStrGroup  mysql_result($LoginRS,0,'ID');

    
//declare two session variables and assign them
    
$_SESSION['MM_Username'] = $loginUsername;
    
$_SESSION['MM_UserGroup'] = $loginStrGroup;          

    if (isset(
$_SESSION['PrevUrl']) && false) {
      
$MM_redirectLoginSuccess $_SESSION['PrevUrl'];    
    }
    
header("Location: " $MM_redirectLoginSuccess );
  }
  else {
    
header("Location: "$MM_redirectLoginFailed );
  }
}
?> 

<?php 
        
$fecha
=date("Y-j-n");
$hora=time("h:i:s");

/* con Esta Funcion estoy Diciendo que me envie los datos ID FECHA Y HORA A LA BASE DE DATOS EN LA TABLA VISITAS */

mysql_query("INSERT INTO visitas (registro_ID,FECHA,HORA)
Values
('$loginStrGroup','$fecha','$hora')"
,$xtremebook);

?>
  #9 (permalink)  
Antiguo 18/06/2010, 22:02
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 14 años, 11 meses
Puntos: 14
Respuesta: ayuda para mostrar los 5 usuarios mas activos de mi web!

Recuerda que antes de hacer la inserción en la tabla visitas,
validas que el usuario y su password son correctos.

Código PHP:
$fecha date('Y-m-d');
$hora date('H:i:s');

$sql "INSERT INTO visitas SET
        usuario = '$loginUsername',
        fecha = '$fecha',
        hora = '$hora'"
;
        
mysql_query($sql); 
Ahora, la tabla visitas sería algo como:
Código MySQL:
Ver original
  1. +------------+------------+------+-----+---------+-------+
  2. | Field      | Type       | Null | Key | Default | Extra |
  3. +------------+------------+------+-----+---------+-------+
  4. | usuario    | varchar    | NO   | PRI |         |       |
  5. | fecha      | date       | NO   | PRI |         |       |
  6. | hora       | time       | NO   | PRI |         |       |
  7. +------------+------------+------+-----+---------+-------+
Además, recuerda que tu campo usuario debe ser una llave foranea de la tabla usuario (o como lo hayas creado).
__________________
Sólo quien nunca nada hace, nunca se equivoca.
  #10 (permalink)  
Antiguo 19/06/2010, 00:07
 
Fecha de Ingreso: mayo-2010
Mensajes: 99
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: ayuda para mostrar los 5 usuarios mas activos de mi web!

ahh ok amigo esdecir usuario Almacenara los username no las ID de los usuarios muy bien amigo lo probare ahorita y te aviso!
  #11 (permalink)  
Antiguo 19/06/2010, 00:12
 
Fecha de Ingreso: mayo-2010
Mensajes: 99
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: ayuda para mostrar los 5 usuarios mas activos de mi web!

amigo Ya valide que checkee la insercion se mehabia pasado lo hice asi:
Código PHP:

<?php 
if (isset($_SESSION['MM_Username'])) {

$fecha date('Y-m-d');
$hora date('H:i:s');

$sql "INSERT INTO visitas SET
        registro_ID = '$loginUsername',
        FECHA = '$fecha',
        HORA = '$hora'"
;
        
mysql_query($sql);  


}else{
echo
'<SCRIPT LANGUAGE="javascript">
            location.href = "entrada.php";
            </SCRIPT>'
;
            }

?>
los campos de la tabla visitas hora fecha y usuario yo los tengo como llave primariay el campo usuario tambien como index o solo lo dejo primario?

Última edición por L4NS; 19/06/2010 a las 16:19
  #12 (permalink)  
Antiguo 19/06/2010, 15:44
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 14 años, 11 meses
Puntos: 14
Respuesta: ayuda para mostrar los 5 usuarios mas activos de mi web!

Eso alguna vez me sucedió y la verdad aún no se porqué. Pero lo puedes arreglar con lo siguiente:
Código PHP:
Ver original
  1. if (isset($_SESSION['MM_Username'])) {
  2.  
  3. $fecha = date('Y-m-d');
  4. $hora = date('H:i:s');
  5.  
  6. if($loginUsername != ''){
  7. $sql = "INSERT INTO visitas SET
  8.        registro_ID = '$loginUsername',
  9.        FECHA = '$fecha',
  10.        HORA = '$hora'";
  11.        
  12. mysql_query($sql);  
  13. }
  14.  
  15. else{
  16. echo'<SCRIPT LANGUAGE="javascript">
  17.            location.href = "entrada.php";
  18.            </SCRIPT>';
  19. }
  20.  
  21. }
  22.  
  23. else{
  24. echo'<SCRIPT LANGUAGE="javascript">
  25.            location.href = "entrada.php";
  26.            </SCRIPT>';
  27. }
__________________
Sólo quien nunca nada hace, nunca se equivoca.
  #13 (permalink)  
Antiguo 19/06/2010, 16:18
 
Fecha de Ingreso: mayo-2010
Mensajes: 99
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: ayuda para mostrar los 5 usuarios mas activos de mi web!

si amigo ya resolvi hace un rato amigo ya todo se inserta correctamente, ahora solo me queda mostrar los usuarios me imagino que con el codigo que me diste arriba no? de que manera con la sentencia echo?
quedaria como algo asi?
Código PHP:
<?php $UsuarioXB mysql_query("SELECT registro_ID, count(*) FROM visitas GROUP BY registro_ID DESC LIMIT 5"$conexion);
        
        echo 
$UsuarioXB;
        
         
?>
para mostrarlos?

Última edición por L4NS; 19/06/2010 a las 19:33
  #14 (permalink)  
Antiguo 19/06/2010, 20:46
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 14 años, 11 meses
Puntos: 14
Respuesta: ayuda para mostrar los 5 usuarios mas activos de mi web!

Lo primero que puedes hacer es realizar la consulta en la consola de MySQL, para que observes que tipo de resultado te arroja y así puedes manipular este con PHP. A continuación un link para que observes como puedes trabajar MySQL y PHP. Link
__________________
Sólo quien nunca nada hace, nunca se equivoca.
  #15 (permalink)  
Antiguo 19/06/2010, 21:41
 
Fecha de Ingreso: mayo-2010
Mensajes: 99
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: ayuda para mostrar los 5 usuarios mas activos de mi web!

si amigo esta bien el problema es que no tengo mucho tiempo para terminar jeje pero bueno gracias amigo yo intento a ver!
  #16 (permalink)  
Antiguo 20/06/2010, 01:47
 
Fecha de Ingreso: mayo-2010
Mensajes: 99
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: ayuda para mostrar los 5 usuarios mas activos de mi web!

amigo mira como lo hice y me lanzo error un espacio en blanco pues no aparece nada en laweb:

Código PHP:
<?php 
        $usuarioXB 
mysql_query("SELECT registro_ID, count(*) FROM visitas GROUP BY registro_ID DESC LIMIT 5",$xtremebook);

      while(
$row == mysql_fetch_array($usuarioXB))

      {

        echo  
$row[0];//muestra registro_id

        
echo  $row[1];//muestra el count

      
}
         
?>
que estoy haciendo mal? ayuda por favor no se hacerlo :(
  #17 (permalink)  
Antiguo 20/06/2010, 21:10
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 14 años, 11 meses
Puntos: 14
Respuesta: ayuda para mostrar los 5 usuarios mas activos de mi web!

Código PHP:
Ver original
  1. while($row = mysql_fetch_array($usuarioXB))
__________________
Sólo quien nunca nada hace, nunca se equivoca.

Etiquetas: mas, usuarios
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 08:23.