Ver Mensaje Individual
  #7 (permalink)  
Antiguo 11/04/2012, 12:01
Avatar de ahaugas
ahaugas
 
Fecha de Ingreso: agosto-2011
Ubicación: Madrid
Mensajes: 249
Antigüedad: 12 años, 8 meses
Puntos: 21
Respuesta: que estoy haciendo mal con las funciones?

ok, ya lo he definido pero no he entendido muy bien lo que me querias decir lo ultimo, el manual esta un poco borroso para mi todavia.

y ahora solo me dice que hay un usuario invitado y no me actualiza en la db, seguro que he hecho algo mal.

dejo el la funcion completa ya terminada pero me falla el actualizar.

Código PHP:
Ver original
  1. <?php  
  2.  
  3. class usersOnline {
  4.     var $userOnlineTime;
  5.     var $userOnlineDate;
  6.     var $userOnlineIP;
  7.     var $userOnlineLimit;
  8.     var $userOnlineSession;
  9.     var $usersOnlineUsersSelect;
  10.    
  11.     function usersOnlineConstruct() {
  12.         global $db,$db_table_prefix,$loggedInUser;
  13.         if(!isUserLoggedIn()) { $session = "0"; } else { $session = "1"; }
  14.        
  15.         $this->userOnlineTime       = 5;                                                // Tiempo máximo de espera
  16.         $this->userOnlineDate       = time();                                           // Momento que entra en línea
  17.         $this->userOnlineIP         = $_SERVER['REMOTE_ADDR'];                          // Recuperamos su IP
  18.         $this->userOnlineLimit      = $this->userOnlineDate-$this->userOnlineTime*60;   // Tiempo Limite de espera
  19.         $this->userOnlineSession    = $session;                                         // Vemos si es usuario o invitado
  20.     }
  21.    
  22.     function usersOnlineDelete() {
  23.         global $db,$db_table_prefix;
  24.         // si se supera el tiempo limite (5 minutos) lo borramos
  25.         $sql = "DELETE FROM ".$db_table_prefix."Users_Online
  26.                 WHERE Date_Time < '".$db->sql_escape($this->userOnlineLimit)."'";
  27.                 return ($db->sql_query($sql));
  28.     }
  29.    
  30.     function usersOnlineSelect() {
  31.         global $db,$db_table_prefix;
  32.         // tomamos todos los usuarios en linea
  33.         $sql = "SELECT * FROM ".$db_table_prefix."Users_Online
  34.                 WHERE User_IP='".$db->sql_escape($this->userOnlineIP)."'";
  35.         return ($db->sql_query($sql));
  36.     }
  37.    
  38.     function usersOnlineInsert() {
  39.         global $db,$db_table_prefix;
  40.         $this->usersOnlineUsersSelect = $this->usersOnlineSelect();
  41.         // Si son los mismo actualizamos la tabla gente_online
  42.         if(mysql_num_rows($this->usersOnlineUsersSelect) != 0) {
  43.         $sql = "UPDATE ".$db_table_prefix."Users_Online
  44.                 SET Date_Time='".$db->sql_escape($this->userOnlineDate)."',
  45.                 User_Session='".$db->sql_escape($this->userOnlineSession)."'
  46.                 WHERE User_IP='".$db->sql_escape($this->userOnlineIP)."'";
  47.                 return ($db->sql_query($sql));
  48.        
  49.         // de lo contrario insertamos los nuevos
  50.         } else {
  51.         $sql = "INSERT INTO `".$db_table_prefix."Users_Online` (
  52.                 `Date_Time`,
  53.                 `User_IP`,
  54.                 `User_Session`
  55.                 )
  56.                 VALUES (
  57.                 '".$db->sql_escape($this->userOnlineDate)."',
  58.                 '".$db->sql_escape($this->userOnlineIP)."',
  59.                 '".$db->sql_escape($this->userOnlineSession)."'
  60.                 )";
  61.                 return $db->sql_query($sql);
  62.         }
  63.     }
  64.        
  65.        
  66.        
  67.     function usersOnlineView() {   
  68.         global $db,$db_table_prefix;
  69.        
  70.         // Seleccionamos toda la tabla
  71.         $query = "SELECT * FROM ".$db_table_prefix."Users_Online";
  72.         $resp = @mysql_query($query) or die(mysql_error());
  73.         $usuarios = mysql_num_rows($resp);
  74.        
  75.         //Usuarios no registrados
  76.         $query = "SELECT * FROM ".$db_table_prefix."Users_Online WHERE User_Session='0'";
  77.         $resp = @mysql_query($query) or die(mysql_error());
  78.         $noregistrados = mysql_num_rows($resp);
  79.        
  80.         //Usuarios registrados
  81.         $query = "SELECT * FROM ".$db_table_prefix."Users_Online WHERE User_Session='1'";
  82.         $resp = @mysql_query($query) or die(mysql_error());
  83.         $registrados = mysql_num_rows($resp);
  84.  
  85.         // Si hay 1 usuarios se muestra en singular; si hay más de uno, en plural
  86.         if($usuarios > 1 || $usuarios == 0){ echo("Hay "); } else { echo("Hay "); }
  87.         if($usuarios == 0){ echo("no "); } else { echo($usuarios." "); }
  88.         if($usuarios > 1 || $usuarios == 0){ echo("usuarios en línea."); } else { echo("usuario en línea."); }
  89.         echo '<br />';
  90.         echo 'Invitados: '.$noregistrados.'';
  91.         echo '<br />';
  92.         echo 'Usuarios: '.$registrados.'';
  93.     }
  94. }  
  95.     //View userCake users online
  96.     $viewUsersOnline = new usersOnline();
  97.     $viewUsersOnline->usersOnlineConstruct();
  98.     $viewUsersOnline->usersOnlineDelete();
  99.     $viewUsersOnline->usersOnlineSelect();
  100.     $viewUsersOnline->usersOnlineInsert();
  101. ?>
gracias por toda la ayuda, he avanzado un poquitin jejeje pero me doy cuanta de mas cosas