Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/04/2008, 07:18
Avatar de alaintm
alaintm
 
Fecha de Ingreso: marzo-2007
Mensajes: 149
Antigüedad: 17 años, 2 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);
?>