Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/02/2007, 21:00
Avatar de Marvin
Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: condicional en esta funcion de clases

Okales... Tonces hay que hacer otro arreglo... te muestro:

Código PHP:
<?
class carrito 
    
//atributos de la clase 
    
var $num_productos
    var 
$array_id_prod
    var 
$array_nombre_prod
    var 
$array_col_prod
    var 
$array_tam_prod
    var 
$array_cant_prod
    var 
$array_pu_prod
    var 
$array_precio_prod

    
//constructor. Realiza las tareas de inicializar los objetos cuando se instancian 
    //inicializa el numero de productos a 0 
    
function carrito () {
        
$this->num_productos=0
    } 
     
    
//Introduce un producto en el carrito. Recibe los datos del producto 
    //Se encarga de introducir los datos en los arrays del objeto carrito 
    //luego aumenta en 1 el numero de productos 
    
function introduce_producto($id_prod$nombre_prod$col_prod$tam_prod$cant_prod$pu_prod){ 
        
$this->array_id_prod[$this->num_productos]=$id_prod
        
$this->array_nombre_prod[$this->num_productos]=$nombre_prod
        
$this->array_col_prod[$this->num_productos]=$col_prod
        
$this->array_tam_prod[$this->num_productos]=$tam_prod
        
$this->array_cant_prod[$this->num_productos]=$cant_prod
        
$this->array_pu_prod[$this->num_productos]=$pu_prod;
        
$this->array_precio_prod[$this->num_productos]= $this->array_cant_prod[$this->num_productos] * $this->array_pu_prod[$this->num_productos];
        
$this->num_productos++;
    } 

    
//Chequea si los datos del producto existen  
    
function check_producto($id_prod$nombre_prod$col_prod$tam_prod$cant_prod$pu_prod){ 
        for(
$i=0;$i<$this->num_productos;$i++){
            if(
$this->array_id_prod[$i] == $id_prod){
                
$this->array_id_prod[$i]        = $id_prod
                
$this->array_nombre_prod[$i]    = $nombre_prod
                
$this->array_col_prod[$i]        = $col_prod
                
$this->array_tam_prod[$i]        = $tam_prod
                
$this->array_cant_prod[$i]        = $cant_prod
                
$this->array_pu_prod[$i]        = $pu_prod;
                
$this->array_precio_prod[$i]    = $this->array_cant_prod[$i] * $this->array_pu_prod[$i];
                return 
"actualizado";//listo
            
}else{
                return 
"no existe el producto";//no existe
            
}
        }
        return 
"no existen productos en el carrito";//por si lo necesitas saber
    
}

    
//Muestra el contenido del carrito de la compra 
    //ademas pone los enlaces para eliminar un producto del carrito 
    
function imprime_carrito(){ 
        
$suma 0
        echo 
'<table border=1 cellpadding="3"> 
              <tr> 
                <td><b>Nombre producto</b></td> 
                <td><b>Tamaño</b></td> 
                <td><b>Cantidad</b></td> 
                <td><b>P/U</b></td> 
                <td><b>Precio</b></td> 
                <td>&nbsp;</td> 
              </tr>'

        for (
$i=0;$i<$this->num_productos;$i++){ 
            if(
$this->array_id_prod[$i]!=0){ 
                echo 
'<tr>'
                echo 
"<td>" $this->array_nombre_prod[$i] . "</td>"
                echo 
"<td>" $this->array_tam_prod[$i] . "</td>";     
                echo 
"<td>" $this->array_cant_prod[$i] . "</td>"
                echo 
"<td>" $this->array_pu_prod[$i] ." \$us</td>";     
                echo 
"<td>" $this->array_precio_prod[$i] . " \$us</td>"
                echo 
"<td><a href='eliminar_producto.php?linea=$i'>Eliminar producto</td>"
                echo 
'</tr>'
                
$suma += ($this->array_precio_prod[$i]); 
            } 
        } 
        
//muestro el total 
        
echo "<tr><td colspan='4'><b>TOTAL:</b></td><td> <b>$suma</b></td><td>&nbsp;</td></tr>"
        
//total más IVA 
        
echo "<tr><td colspan='4'><b>IVA (14%):</b></td><td> <b>" $suma 1.14 "</b></td><td>&nbsp;</td></tr>"
        echo 
"</table>"
    } 
     
    
//elimina un producto del carrito. recibe la linea del carrito que debe eliminar 
    //no lo elimina realmente, simplemente pone a cero el id, para saber que esta en estado retirado 
    
function elimina_producto($linea){ 
        
$this->array_id_prod[$linea]=0
    } 
}  
//inicio la sesión 
session_start(); 
//si no esta creado el objeto carrito en la sesion, lo creo 
if (!isset($_SESSION["ocarrito"])){ 
    
$_SESSION["ocarrito"] = new carrito(); 
}  
?>
Código PHP:
<?
include("lib_carrito.php"); 
$LibCarrito = new carrito();
if(
$LibCarrito->check_producto($_GET["id"], $_GET["nombre"], $_GET["col"], $_GET["tam"], $_GET["cant"], $_GET["precio"]) == "actualizado"){
    
$LibCarrito->imprime_carrito();
    
}elseif(
$LibCarrito->check_producto($_GET["id"], $_GET["nombre"], $_GET["col"], $_GET["tam"], $_GET["cant"], $_GET["precio"]) == "no existe el producto"){
    
$_SESSION["ocarrito"]->introduce_producto($_GET["id"], $_GET["nombre"], $_GET["col"], $_GET["tam"], $_GET["cant"], $_GET["precio"]);
    
$LibCarrito->imprime_carrito();
}elseif(
$LibCarrito->check_producto($_GET["id"], $_GET["nombre"], $_GET["col"], $_GET["tam"], $_GET["cant"], $_GET["precio"]) == "no existen productos en el carrito"){
    
$LibCarrito->imprime_carrito();
}
?>
Espero funcione (pk no lo probe)
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!