Foros del Web » Programando para Internet » PHP »

Cosa extraña en carrito

Estas en el tema de Cosa extraña en carrito en el foro de PHP en Foros del Web. Buenos dias, Estoy haciendo un carrito basandome en el tutorial de desarrolloweb La cosa extraña que hace es que al insertar un producto en la ...
  #1 (permalink)  
Antiguo 25/07/2006, 04:53
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 74
Antigüedad: 17 años, 9 meses
Puntos: 0
Exclamación Cosa extraña en carrito

Buenos dias,

Estoy haciendo un carrito basandome en el tutorial de desarrolloweb

La cosa extraña que hace es que al insertar un producto en la sesion del carrito
no lo inserta, si antes no has ido a la libreria del carrito. Os voy a poner los codigos de la libreria y del archivo que inserta en la sesion que son los problematicos.

Libreria
Código PHP:
<?
class carrito {
    
//atributos de la clase
       
var $num_productos;
       var 
$array_id_prod;
       var 
$array_nombre_prod;
       var 
$array_precio_prod;
    var 
$array_tarifa;

    
//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,$ref,$nombre_prod,$precio_prod,$tarifa){
        
$this->array_id_prod[$this->num_productos]=$id_prod;
        
$this->array_ref[$this->num_productos]=$ref;
        
$this->array_nombre_prod[$this->num_productos]=$nombre_prod;
        
$this->array_precio_prod[$this->num_productos]=$precio_prod;
        
$this->array_tarifa[$this->num_productos]=$tarifa;
        
$this->num_productos++;
    
    }

    
//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  width="530" border=1 bordercolor="#000000" cellspacing="0" cellpadding="0" class=\"txt\">
              <tr>
                <td align="center" class="txtprensa"><b> Referencia </b></td>
                <td align="center" class="txtprensa"><b> Descripcion </b></td>
                <td align="center" class="txtprensa"><b> Precio </b></td>
                <td align="center" class="txtprensa"><b> Tarifa transporte </b></td>
                <td align="center" class="txtprensa"> &nbsp; </td>
              </tr>'
;
        for (
$i=0;$i<$this->num_productos;$i++){
            if(
$this->array_id_prod[$i]!=0){
                echo 
'<tr>';
                echo 
"<td class=\"txt\" align=\"center\">" $this->array_ref[$i] . "</td>";
                echo 
"<td class=\"txt\">" $this->array_nombre_prod[$i] . "</td>";
                echo 
"<td class=\"txt\" align=\"right\">" $this->array_precio_prod[$i] . " €</td>";
                echo 
"<td class=\"txt\" align=\"right\">".$this->array_tarifa[$i]."&nbsp;</td>";
                echo 
"<td class=\"txt\" align=\"center\"><a class=\"txt\" href='del_prod.php?linea=$i'>Eliminar</a></td>";
                echo 
'</tr>';
                
$suma += $this->array_precio_prod[$i];
                
$suma2 += $this->array_tarifa[$i];
                
$subtotal$suma $suma2;
                
$iva$suma 0.16;
                
$total$suma $iva;
            }
        }
        echo 
"<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>";
        
//muestro el total
        
echo "<tr><td>&nbsp;</td><td>&nbsp;</td> <td>&nbsp;</td><td  class=\"txt\" align=\"right\"><b>Subtotal:</b></td><td class=\"txt\" align=\"right\"> <b> $subtotal € </b></td></tr>";
        
//IVA
        
echo "<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td class=\"txt\" align=\"right\"><b>IVA (16%):</b></td><td class=\"txt\" align=\"right\"> <b> " $iva " € </b></td></tr>";
        echo 
"<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td class=\"txt\" align=\"right\"><b>Total:</b></td><td class=\"txt\" align=\"right\"> <b> " $total " € </b></td></tr>";
        echo 
"</table>";
        echo 
"<a class=\"txt\" href=\"del_prod.php?ds=1\">Vaciar</a>";
    }

    
    
//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["carrito"])){
    
$_SESSION["carrito"] = new carrito();
}
?>
Insertar en el carrito.

Código PHP:
<?

include("lib_carrito.php");
include(
"conf.php");
session_start();
if (!isset(
$_SESSION["carrito"])){
    
$_SESSION["carrito"] = new carrito();
}
if(
$anf != ''){
                            
$ref=mysql_query("SELECT * FROM anforas WHERE Referencia=\"$anf\"");
                                if(
$con mysql_fetch_array($ref)){
                                
$_SESSION["carrito"]->introduce_producto(1,$con[Referencia], $con[Descripcion],$con[Precio],$con[Tarifa_transporte]);
}}

if(
$ch2 != ''){
                            
$acc=mysql_query("SELECT * FROM accesorios WHERE Referencia=\"$ch2\"");
                                if(
$con2 mysql_fetch_array($acc)){
                                
$_SESSION["carrito"]->introduce_producto(1,$con2[Referencia], $con2[Descripcion],$con2[Precio],$con2[Tarifa_transporte]);
}}
if(
$ch3 != ''){
                            
$acc2=mysql_query("SELECT * FROM accesorios WHERE Referencia=\"$ch3\"");
                                if(
$con3 mysql_fetch_array($acc2)){
                                
$_SESSION["carrito"]->introduce_producto(1,$con3[Referencia], $con3[Descripcion],$con3[Precio],$con3[Tarifa_transporte]);
}}
if(
$ch4 != ''){
                            
$acc3=mysql_query("SELECT * FROM accesorios WHERE Referencia=\"$ch4\"");
                                if(
$con4 mysql_fetch_array($acc3)){
                                
$_SESSION["carrito"]->introduce_producto(1,$con4[Referencia], $con4[Descripcion],$con4[Precio],$con4[Tarifa_transporte]);
}}
if(
$ch5 != ''){
                            
$acc4=mysql_query("SELECT * FROM accesorios WHERE Referencia=\"$ch5\"");
                                if(
$con5 mysql_fetch_array($acc4)){
                                
$_SESSION["carrito"]->introduce_producto(1,$con5[Referencia], $con5[Descripcion],$con5[Precio],$con5[Tarifa_transporte]);
}}
if(
$ch6 != ''){
                            
$acc5=mysql_query("SELECT * FROM accesorios WHERE Referencia=\"$ch6\"");
                                if(
$con6 mysql_fetch_array($acc5)){
                                
$_SESSION["carrito"]->introduce_producto(1,$con6[Referencia], $con6[Descripcion],$con6[Precio],$con6[Tarifa_transporte]);
}}
if(
$ch7 != ''){
                            
$acc6=mysql_query("SELECT * FROM accesorios WHERE Referencia=\"$ch7\"");
                                if(
$con7 mysql_fetch_array($acc6)){
                                
$_SESSION["carrito"]->introduce_producto(1,$con7[Referencia], $con7[Descripcion],$con7[Precio],$con7[Tarifa_transporte]);
}}
if(
$ch8 != ''){
                            
$acc7=mysql_query("SELECT * FROM accesorios WHERE Referencia=\"$ch8\"");
                                if(
$con8 mysql_fetch_array($acc7)){
                                
$_SESSION["carrito"]->introduce_producto(1,$con8[Referencia], $con8[Descripcion],$con8[Precio],$con8[Tarifa_transporte]);
}}
if(
$ch9 != ''){
                            
$acc8=mysql_query("SELECT * FROM accesorios WHERE Referencia=\"$ch9\"");
                                if(
$con9 mysql_fetch_array($acc8)){
                                
$_SESSION["carrito"]->introduce_producto(1,$con9[Referencia], $con9[Descripcion],$con9[Precio],$con9[Tarifa_transporte]);
}}
if(
$ch10 != ''){
                            
$acc9=mysql_query("SELECT * FROM accesorios WHERE Referencia=\"$ch10\"");
                                if(
$con10 mysql_fetch_array($acc9)){
                                
$_SESSION["carrito"]->introduce_producto(1,$con10[Referencia], $con10[Descripcion],$con10[Precio],$con10[Tarifa_transporte]);
}}

echo 
'<html>
<head>
    <title>Introduce Producto</title>
</head>
<body>
<table border="0" cellspacing="1" cellpadding="0" align="center">
    <tr align="center" valign="bottom">
        <td height="108" colspan="2" class="txt">Los objetos se han añadido correctamente a su pedido.<br />
              <br />
        </td>
    </tr>
    <tr >
        <td height="3" colspan="2" bgcolor="#000000"></td>
    </tr>
    <tr>
        <td width="169" align="left" class="txt"><a href="index.php?sec=3&amp;ss=1">Volver a &aacute;nforas</a> </td>
        <td width="169" align="right" class="txt"><a href="index.php?sec=3&amp;ss=1&amp;car=1">Realizar pedido</a> </td>
    </tr>
</table>
</body>
</html>
'
;
?>
A ver si me podeis echar un cable,

N3m0

Última edición por n3m0; 25/07/2006 a las 05:09
  #2 (permalink)  
Antiguo 25/07/2006, 04:56
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
coño.. claro que si no vas a la libreria no lo inserta:

Cita:
//inicio la sesión
session_start();
//si no esta creado el objeto carrito en la sesion, lo creo
if (!isset($_SESSION["carrito"])){
$_SESSION["carrito"] = new carrito();
ahi es donde se crea el carrito que es desde donde se hace todo.. jajaja
__________________
ALOZORRO v5.0 (ahora en .es)
  #3 (permalink)  
Antiguo 25/07/2006, 05:05
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 74
Antigüedad: 17 años, 9 meses
Puntos: 0
perdon que copie el anterior archivo de insertar, EDITADO
  #4 (permalink)  
Antiguo 25/07/2006, 05:06
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
que editaste?

da igual... es lo que te dije antes
__________________
ALOZORRO v5.0 (ahora en .es)
  #5 (permalink)  
Antiguo 25/07/2006, 05:13
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 74
Antigüedad: 17 años, 9 meses
Puntos: 0
Azrael yo ya se que el problema es de ahí, pq al entrar al lib_carrito es lo que hace, pero que esta lo mismo puesto en el de insertar, y no lo inserta. ese es el problem
  #6 (permalink)  
Antiguo 25/07/2006, 05:19
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
pero que te estoy diciendo que es por eso.. todas las funciones estan en esa libreria.. como quieres llamar a una funcion que no existe.. si quieres no tener que meter esa lbireria cojes, copias todo el codigo al otro fichero y listo.. ya te funciona.
__________________
ALOZORRO v5.0 (ahora en .es)
  #7 (permalink)  
Antiguo 25/07/2006, 05:30
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 74
Antigüedad: 17 años, 9 meses
Puntos: 0
Solo estoy preguntando porque no funciona, sino se puede preguntar pues no dire nada :( a ver ahora esta la class carrito en el insertar con todas las funciones, y no funciona, creo que con el include hacia lo mismo pero bueno.

No lo entiendo :S
  #8 (permalink)  
Antiguo 25/07/2006, 09:41
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 74
Antigüedad: 17 años, 9 meses
Puntos: 0
Nadie sabe como se podria arreglar ? :(

Última edición por n3m0; 26/07/2006 a las 05:59
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:29.