Foros del Web » Programando para Internet » PHP »

Problema con sesiones

Estas en el tema de Problema con sesiones en el foro de PHP en Foros del Web. Hola, tengo un problema, estoy desarrollando una tienda virtual, tengo el archivo catalogo.php donde se listan los productos y el carrito.php donde se muestran los ...
  #1 (permalink)  
Antiguo 08/12/2009, 22:59
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 16 años, 5 meses
Puntos: 2
Problema con sesiones

Hola, tengo un problema, estoy desarrollando una tienda virtual, tengo el archivo catalogo.php donde se listan los productos y el carrito.php donde se muestran los productos agregados, y el total, el problema es que solo he logrado almacenar el total de un producto agregado N veces, lo que necesito es poder agregar varios productos y poder mostrarlo en mi carrito.php, ya que solo me muestra uno (el ultomo agregado) por lo cual solo me muestra los detalles de ese producto y el total de las veces que lo agregue. Muestro mi codigo:
Catalogo.php
Código PHP:
<?PHP
include("includes/conx.php");

$query="SELECT * FROM PRODUCTOS";

$regs=mysql_query($query,$conx);

while(
$row=mysql_fetch_array($regs)){
    echo
"<img src='";   echo"".$row["imagen"]."";echo"'>";
    echo
"nombre: ".$row["nombre"]."<br>";
    echo
"marca: ".$row["marca"]."<br>";
    echo
"modelo: ".$row["modelo"]."<br>";
    echo
"descripcion: ".$row["descripcion"]."<br>";
    echo
"precio: ".$row["precio"]."<br>";
   echo
"<a href='carrito.php?id=";   echo"".$row["id"]."";echo"'>Comprar</a>";

    echo
"<br>";


}

?>
Carrito.php
Código PHP:
<?PHP
session_start
();

include(
"includes/conx.php");

if((
$_GET["id"]==$_SESSION["id"]))
{

$_SESSION["cantidad"]+=1;
    echo
"este producto ya lo has agregado";
 
}
elseif((
$_GET["id"]!=$_SESSION["id"]))
{
    
echo
"Producto nuevo agregado exitosamente";
}
$_SESSION["id"]=$_GET["id"];

$producto=mysql_real_escape_string($_GET["id"]);

$query="SELECT * FROM PRODUCTOS WHERE id=$producto";
$pedido=mysql_query($query,$conx);

while(
$row=mysql_fetch_array($pedido)){
    
$detalles=array($nombre=$row["nombre"],$marca=$row["marca"],$precio=$row["precio"]);
    
$p=$_SESSION["detalles"]=$detalles;
    echo
"<br>Usted pidio: $nombre<br>";
    echo
"De la marca: $marca<br>";
    echo
"El cual cuesta: $precio";

}

$total=$_SESSION["cantidad"]*$precio;
echo
"<br>Total:<b>$total</b>";

//$error=mysql_error();
//echo$error;
echo"<br>Cantidad: ";
echo
$_SESSION["cantidad"];
echo
"<br>";
foreach(
$detalles as $clave=>$valor)
{
    echo
$clave; echo"<br>";
    echo
$valor;
}
?>
Ya intente de muchas formas y nomas no me sale :(
Espero me puedan hechar una mano.
Saludos
  #2 (permalink)  
Antiguo 09/12/2009, 01:17
 
Fecha de Ingreso: noviembre-2009
Mensajes: 1
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Problema con sesiones

<?PHP
session_start();

include("includes/conx.php");
$_SESSION["prodcutos"][$_GET["id"]]+=1;
if($_SESSION["prodcutos"][$_GET["id"]] > 1)
{
echo"este producto ya lo has agregado";
}
else
{
echo"Producto nuevo agregado exitosamente";
}

....

etc
  #3 (permalink)  
Antiguo 09/12/2009, 02:04
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Problema con sesiones

Perdon pero lo que quiero es poder imprimir en pantalla todos los productos seleccionados, no comprobar si ya fueron agregados.
Saludos
  #4 (permalink)  
Antiguo 09/12/2009, 09:55
 
Fecha de Ingreso: diciembre-2007
Ubicación: santo domingo
Mensajes: 12
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Problema con sesiones

es mejor que utilize array en al crear un nuevo producto
por ejemplo

$_SESSION['carro'][] = produnto1;
$_SESSION['carro'][] = produnto2;
$_SESSION['carro'][] = produnto3;
$_SESSION['carro'][] = produnto4;

mas detallado

$_SESSION['carro'][] =array(0 => id, 1 => cantidad);

id = id del producto en la tabla con este puede buscar el precio y todo me imagino que saves a lo que me refiero

de esta manera con un for o un foreach puedes recorel el areglo $_SESSION['namecarro'];

asi divide y evita que un producto sustitulla otro si quieres eliminar un producto

simplemente destrulle $_SESSION['carro']['index en el areglo'] ;

Última edición por natanael26; 09/12/2009 a las 09:57 Razón: algo mal escrito
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 10:35.