Ver Mensaje Individual
  #17 (permalink)  
Antiguo 19/12/2012, 16:29
LSkynyrd79
 
Fecha de Ingreso: agosto-2012
Mensajes: 40
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Duda al pasar codigo estructurado a poo

Gracias por la ultima respuesta!!! me fuiste guiando por el buen sendero y al final me termino saliendo y logre entenderlo.

Hice que funcionara pero no se si el codigo es el optimo, aca dejo como lo termine haciendo.

Class producto:

Código PHP:
<?php
    
class producto{
        private 
$id;
        private 
$nombre_prod;
        private 
$precio_prod;
        private 
$detalles_prod;
        private 
$stock;
        private 
$cnx_db;
    
        public function 
__construct($nombre_prod$precio_prod$detalles_prod$stock){
            
$this->nombre_prod $nombre_prod;
            
$this->precio_prod $precio_prod;
            
$this->detalles_prod $detalles_prod;
        }
        
         public function 
setDb($host$name$pass){
            
$this->cnx_db mysql_pconnect($host$name$pass);
        }
        
        public function 
addProd($nombre_prod$precio_prod$detalles_prod$stock){
            
$sql "INSERT INTO producto (nombre_prod, precio_prod, detalles_prod, stock_prod) VALUES ('$nombre_prod', '$precio_prod', '$detalles_prod', '$stock')";
            
mysql_query($sql$this->cnx_db);
        }
        
        
    }
?>
Despues Instancie un objeto y el metodo setDb con sus parametros:

Código PHP:
<?php
    
include('includes/class/class_cnx.php');
    include(
'includes/class/class_addprod.php');
    
$mysql = new MySQL('localhost','root','','panel_adm');
    
    if(isset(
$_POST['enviar'])){
        if(
$_POST['titulo'] != "" && $_POST['precio'] != "" ){
            if(
is_float($_POST['precio']) or is_numeric($_POST['precio'])){
                
$titulo_producto $_POST['titulo'];
                
$precio_producto $_POST['precio'];
                
$detalles_producto $_POST['descripcion'];
                
$stock $_POST['stock'];
                
                
$producto = new producto($titulo_producto$precio_producto$detalles_producto$stock);
                
$producto->setDb('localhost''root''');
                
$producto->addProd($titulo_producto$precio_producto$detalles_producto$stock);
            }
        }        
    }
?>
La cosa es que tuve que agregarle los parametros al setDb manualmente, pudiendo tal ves haberlos heredado de la class mysql que es asi:

Código PHP:
<?php
class MySQL {
    
//Atributos de la conexion
    
private $hostname_cnx;
    private 
$database_cnx;
    private 
$username_cnx;
    private 
$pass_cnx;
    protected 
$cnx;
    private 
$error_cnx "No se ha podido conectar a la Base de datos";
    
    
//Metodos
    
    //Funcion para conectar a la base de datos
    
public function __construct($hostname_cnx$username_cnx$pass_cnx$database_cnx){
        
$this->hostname_cnx $hostname_cnx;
        
$this->username_cnx $username_cnx;
        
$this->pass_cnx $pass_cnx;
        
$this->database_cnx $database_cnx;
        
$this->cnx mysql_pconnect($this->hostname_cnx$this->username_cnx$this->pass_cnx) or die ($this->error_cnx);
        
$db_seleccionar mysql_select_db($this->database_cnx$this->cnx);    
    }
    
    
//Funcion para desconectar a la base de datos
    
public function desconectar(){
        if(
$this->flag == true){
            
mysql_close($this->cnx);
        }
    }
    
    
//Esta funcion selecciona la bd y hace una consulta
    
public function consulta($query){
        return 
mysql_db_query($this->database_cnx,$query);        
    }
    
    
//Funcion que guarda una fila de resultados
    
public function filas($query){
        return 
mysql_fetch_assoc($query);
   }
   
   
//Retorna la conexion
    
public function getDb(){
        return 
$this->cnx;
    }
}
?>
Gracias por todo amigo :)