Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/04/2008, 07:18
Avatar de alaintm
alaintm
 
Fecha de Ingreso: marzo-2007
Mensajes: 149
Antigüedad: 19 años, 5 meses
Puntos: 1
Analisis de Clase y Herencia

He creado una clase para conectarme mediante mysqli y a su vez otra que hereda de la primera, les presento el código para oir sugerencias.

Agradezco de antemano su ayuda.

Código PHP:
<?php
  
class BD{

    protected 
$link;
    private   
$server, $user, $password, $db, $result;

    public function 
__construct($server, $user, $password, $db){
      
$this->link = mysqli_connect($server, $user, $password, $db);
      
mysqli_select_db($this->link, $db);
    }

    public function 
query($sql){
      
$this->result = mysqli_query($this->link, $sql);
    }

    public function 
recordset(){
      
$this->record = mysqli_fetch_object($this->result);
      return 
$this->record;
    }

    public function 
numrows(){
      
$this->numrows = mysqli_num_rows($this->result);
      return 
$this->numrows;
    }

    public function 
__destruct(){
      return 
mysqli_close($this->link);
    }
  }

  class 
UsuariosEnLinea extends BD{

    public function 
mostrar_usuarios_conectados(){

      
$ip               = ip2long($_SERVER["REMOTE_ADDR"]);
      
$tiempo_limite    = 300;
      
$tiempo_actual    = time();
      
$tiempo_conectado = $tiempo_actual - $tiempo_limite;

      
parent::query("DELETE FROM onlineusers WHERE tiempo < $tiempo_conectado");

      if(
parent::query("SELECT ip FROM onlineusers WHERE ip = $ip") != 0){
         
parent::query("UPDATE onlineusers SET tiempo = $tiempo_actual WHERE ip = $ip");
      }
      else{
         
parent::query("INSERT INTO onlineusers (ip, tiempo) VALUE ('$ip','$tiempo_actual')");
      }

      
$usuarios = parent::query("SELECT ip FROM onlineusers");

      
$usuarios_conectados = parent::numrows($usuarios);

      return 
$usuarios_conectados;
    }
  }

  
$ul = new UsuariosEnLinea("localhost","usuario","clave","bd");

  echo 
"Usuarios en Línea ".$ul->mostrar_usuarios_conectados();

  unset(
$bd, $ul);
?>