Foros del Web » Programando para Internet » PHP »

Problema con carrito

Estas en el tema de Problema con carrito en el foro de PHP en Foros del Web. wenas de primero gracias de antemano ya ke soy nuevo en php y en esta web XD,, tengo un problema con el carrito de al ...
  #1 (permalink)  
Antiguo 28/01/2011, 14:29
 
Fecha de Ingreso: enero-2011
Mensajes: 7
Antigüedad: 13 años, 2 meses
Puntos: 0
Problema con carrito

wenas de primero gracias de antemano ya ke soy nuevo en php y en esta web XD,, tengo un problema con el carrito de al compra, aver tengo mi pagina de productos a la cual le paso el cod_prod por la imagen del carrito, llamo al php mete_producto, el cual llama por include a lib_carrito, vale aki viene el problema, tengo esto:

Código PHP:
<?
        $link 
mysql_connect("localhost","root","12345");
        
mysql_select_db("proyecto",$link);
$ssql "Select * from proyecto.productos where cod_prod = ".$_GET['cod_prod']."";
$rs mysql_query($ssql,$link);

class 
carrito {
    
//atributos de la clase
       
var $num_productos;
       var 
$array_cod_prod;
       var 
$array_nom_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($cod_prod,$nom_prod,$precio_prod){
        
$this->array_cod_prod[$this->num_productos]=$cod_prod;
        
$this->array_nom_prod[$this->num_productos]=$nom_prod;
        
$this->array_precio_prod[$this->num_productos]=$precio_prod;
        
$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 border=1 cellpadding="3">
              <tr>
                <td><b>Nombre producto</b></td>
                <td><b>Precio</b></td>
                <td>&nbsp;</td>
              </tr>'
;

                    
        for (
$i=0;$i<$this->num_productos;$i++){
            if(
$this->array_cod_prod[$i]!=0){
                echo 
'<tr>';
                echo 
"<td>" $this->array_nom_prod[$i]['nom_prod'] . "</td>";
                echo 
"<td>" $this->array_precio_prod[$i]['precio_prod'] . "</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><b>TOTAL:</b></td><td> <b>$suma</b></td><td>&nbsp;</td></tr>";
        
//total más IVA
        
echo "<tr><td><b>IVA (16%):</b></td><td> <b>" $suma 1.16 "</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_cod_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();
}
?>
en la funcion de imprimir el carrito no consigo pasarle los datos de la sentencia sql para poder msotrar los datos en la tabla del producto elejido..., si me podeis ayudar os lo agradezco si necesitais mas datos de las otras librerias os los facilito, mi correo es [email protected] (por si me kereis agregar y exar una mano, gracias)
  #2 (permalink)  
Antiguo 28/01/2011, 16:56
 
Fecha de Ingreso: enero-2011
Mensajes: 7
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Problema con carrito

weno pues lo consegui solucionar aora tengo otro pekeño problema aver si en este me exais una mano
Código PHP:
<?
class carrito {
    
//atributos de la clase
       
var $num_productos;
       var 
$array_cod_prod;
       var 
$array_nom_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($cod_prod,$nom_prod,$precio_prod){
        
$this->array_cod_prod[$this->num_productos]=$cod_prod;
        
$this->array_nom_prod[$this->num_productos]=$nom_prod;
        
$this->array_precio_prod[$this->num_productos]=$precio_prod;
        
$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 border=1 cellpadding="3">
              <tr>
                <td><b>Nombre producto</b></td>
                <td><b>Precio</b></td>
                <td>&nbsp;</td>
              </tr>'
;

                    
        for (
$i=0;$i<$this->num_productos;$i++){
            if(
$this->array_cod_prod[$i]!=0){
                echo 
'<tr>';
                echo 
"<td>" $this->array_nom_prod[$i]['nom_prod'] . "</td>";
                echo 
"<td>" $this->array_precio_prod[$i]['precio_prod'] . "</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><b>TOTAL:</b></td><td> <b>$suma</b></td><td>&nbsp;</td></tr>";
        
//total más IVA
        
echo "<tr><td><b>IVA (16%):</b></td><td> <b>" $suma 1.16 "</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_cod_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();
}
?>
en este php al ejecutarlo me muestra solo la priemra letra del nombre de mi priducto y el primer numero del precio, xke puede ser?, gracias
  #3 (permalink)  
Antiguo 28/01/2011, 17:40
 
Fecha de Ingreso: enero-2011
Mensajes: 7
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Problema con carrito

Creo que la manera de acceder al elemento del array es incorrecta:

$this->array_nom_prod[$i]['nom_prod']

utiliza

$this->array_nom_prod[$i]

para obtener en nombre del producto.

Además prueba inicializar los arrays con

$this->array_nom_prod=array();

SALUDOS
  #4 (permalink)  
Antiguo 29/01/2011, 06:04
 
Fecha de Ingreso: enero-2011
Mensajes: 7
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Problema con carrito

gracias probare lo ke me as dixo, lo unico ke no te entendido es lo de los arrays, yo tengo al funcion de introducir producto igualada a los datos ke kiero tener y mostrar, encuanto pruebe te digo, gracias por tu respuesta
  #5 (permalink)  
Antiguo 29/01/2011, 13:50
 
Fecha de Ingreso: enero-2011
Mensajes: 7
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Problema con carrito

gracias tekoraik lo solucione como decias kitando lo del nom_prod, del array,gracias
  #6 (permalink)  
Antiguo 30/01/2011, 07:40
 
Fecha de Ingreso: enero-2011
Mensajes: 7
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Problema con carrito

vale aora tengo otro problemilla con esto del carrito.. aver si me podeis exar una mano..., estoy intentando acer ke cada vez ke pike en el mismo producto me aumente la cantidad no ke me aga un nuevo td con el producto, estoy con este codigo, pero estoy atascao con eso
Código PHP:
<?

class carrito {
    
//atributos de la clase
       
var $num_productos;
                var 
$array_foto_prod;
       var 
$array_cod_prod;
       var 
$array_nom_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($cod_prod,$nom_prod,$precio_prod,$foto_prod){
            
$this->array_foto_prod[$this->num_productos]=$foto_prod;
        
$this->array_cod_prod[$this->num_productos]=$cod_prod;
        
$this->array_nom_prod[$this->num_productos]=$nom_prod;
        
$this->array_precio_prod[$this->num_productos]=$precio_prod;
        
$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="100%" border="0" cellspacing="0">
                    <tr>
                      <th width="32%" bgcolor="#999999" scope="col">ARTICULO/S</th>
                                                                                        <th width="37%" bgcolor="#999999" scope="col">NOMBRE DEL PRODUCTO</th>
                      <th width="37%" bgcolor="#999999" scope="col">CANTIDAD</th>
                      <th width="31%" bgcolor="#999999" scope="col">PRECIO</th>
                                                                                        <th width="31%" bgcolor="#999999" scope="col"> </th>
                    </tr>
                  </table>'
;

                    echo 
"<table width='100%' height='211' border='0' cellpadding='0' cellspacing='0'>";
        for (
$i=0;$i<$this->num_productos;$i++){
            if(
$this->array_cod_prod[$i]!=0){
                echo 
'<tr>';
                echo 
"<th width='32%' height='110' rowspan='2' align='left' valign='top' bgcolor='#CCCCCC' scope='col'>"$this->array_foto_prod[$i]."</th>";
                echo 
"<td width='32%' height='110' rowspan='2' align='left' valign='top' bgcolor='#CCCCCC' scope='col'>" $this->array_nom_prod[$i]. "</td>";
                echo 
"<th width='18%' rowspan='2' align='right' valign='middle' bgcolor='#CCCCCC' scope='col'><p class='NARUTO'>
                        <label>
                        <input name='textfield4' type='text' id='textfield' value='1' size='10' />
                        </label>
                      </p></th>"
;    
             echo 
"<th width='19%' height='74' align='left' valign='bottom' bgcolor='#CCCCCC' scope='col'><img src='../../../Sergio Ramosphp/Imagenes/+1.png' width='28' height='27' /></th>";
    echo 
"<th width='18%' rowspan='2' align='center' valign='top' bgcolor='#CCCCCC' scope='col'><p>&nbsp;</p>
                      <p class='titulo'>"
$this->array_precio_prod[$i]."</p></th>";
                echo 
"<td><a href='eliminar_producto.php?linea=$i'>Eliminar producto</td>";
                echo 
'</tr>';
                 echo 
'<tr>';
     echo 
"<th height='63' align='left' valign='top' bgcolor='#CCCCCC' scope='col'><img src='../../../Sergio Ramosphp/Imagenes/-1.png' width='28' height='27' /></th>";
                  echo 
'</tr>';
                
$suma += $this->array_precio_prod[$i];
            }
        }
        
        
//muestro el total
        
echo "<tr><td><b>TOTAL:</b></td><td> <b>$suma</b></td><td>&nbsp;</td></tr>";
        
//total más IVA
        
echo "<tr><td><b>IVA (16%):</b></td><td> <b>" $suma 1.16 "</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_cod_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();
}
?>
con esto saco una nueva fila pero nose como implementar lo de la cantidad, gracias de antemano
  #7 (permalink)  
Antiguo 30/01/2011, 07:53
 
Fecha de Ingreso: enero-2011
Ubicación: sergigp.com
Mensajes: 7
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Problema con carrito

Buenas sergy1989_6,

Deberías vigilar cosas como esta:

Código PHP:
$ssql "Select * from proyecto.productos where cod_prod = ".$_GET['cod_prod'].""
Creo que esto te puede conllevar problemas de seguridad.
http://es.wikipedia.org/wiki/Inyeccion_SQL

Saludos !
  #8 (permalink)  
Antiguo 30/01/2011, 10:19
 
Fecha de Ingreso: enero-2011
Mensajes: 7
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Problema con carrito

gracias, pero de momento eso no me preocupa xke no es una web profesional simlemente es un proyectito pekeño ke ando aciendo, me gustaria ke si em exais una mano con lo del contador.. de los productos os lo agradeceria xke me lleva de cabeza gracias
  #9 (permalink)  
Antiguo 02/02/2011, 12:27
 
Fecha de Ingreso: enero-2011
Mensajes: 7
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Problema con carrito

sigo con el problema de la suma de productos en el carrito aver si me podeis exar una mano

Etiquetas: carrito
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 20:10.