PHP - Ayuda porfa en este codigo..

   
Vista:

Ayuda porfa en este codigo..

Publicado por Erick (3 intervenciones) el 08/11/2013 23:49:57
Hola amigos espero me ayuden...

El problema es el siguiente tengo un carrito de compras y quiero actualizar la cantidad pero no se que pasa en mi codigo que no actualiza..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
include('../conectar/conectar.php');
if(isset($_SESSION['ventaYA'])){
    if (isset($_GET['id_pro'])) {
      $arreglo = $_SESSION['ventaYA'];
		  $encontro = false;
		  $numero = 0;
		  for ($i=0; $i <count($arreglo) ; $i++) {
			if ($arreglo[$i]['Id']==$_GET['id_pro']) {
			  $encontro=true;
			  $numero=$i;
			}
		  }
		  if ($encontro==true) {
			$arreglo[$numero]['Cantidad']=$arreglo[$numero]['Cantidad']+1;
			$_SESSION['ventaYA']=$arreglo;
		  }else{
        $nombre="";
      $precio=0;
      $codigo="";
      $re=mysql_query("select * from producto where id_pro =".$_GET['id_pro']);
      while ($f=mysql_fetch_array($re)) {
        $nombre=$f['nom_pro'];
        $precio=$f['preciouni_pro'];
        $codigo=$f['cod_pro'];
      }
      $datosnuevos=array('Id' =>$_GET['id_pro'],
               'Codigo' =>$codigo,
               'Nombre' =>$nombre,
               'Precio' =>$precio,
               'Cantidad' =>1);
      array_push($arreglo, $datosnuevos);
      $_SESSION['ventaYA'] = $arreglo;
      }
      }
		}
 
    else{
		  if (isset($_GET['id_pro'])) {
			$nombre="";
			$precio=0;
			$codigo="";
			$re=mysql_query("select * from producto where id_pro =".$_GET['id_pro']);
			while ($f=mysql_fetch_array($re)) {
			  $nombre=$f['nom_pro'];
			  $precio=$f['preciouni_pro'];
			  $codigo=$f['cod_pro'];
			}
			$arreglo[]=array('Id' =>$_GET['id_pro'],
						   'Codigo' =>$codigo,
						   'Nombre' =>$nombre,
						   'Precio' =>$precio,
						   'Cantidad' =>1);
     	}
      if (isset($_POST['cantidad02'])){
          $id=$_POST['id02'];
          $cuantos=$_POST['cantidad02'];
          if($cuantos<1){
            $arreglo[$id]=NULL;
            }else{
              $arreglo[$id]['Cantidad']=$cuantos;
            }
         }
			 $_SESSION['ventaYA']=$arreglo;
		 }
 
 
?>
 
 
 
 
<table border="0" cellpadding="3"  align="center" class="table table-hover">
                      <tr bgcolor="#CCCCCC">
                        <td>Codigo</td>
                        <td>Descripcion</td>
                        <td>Cantidad </td>
                        <td>P.Unitario</td>
                        <td>Valor Venta</td>
                        <td>Eliminar</td>
                      </tr>
 
                      <?php
                      $total=0;
                          if (isset($_SESSION['ventaYA'])) {
                            $datos=$_SESSION['ventaYA'];
                            for ($i=0; $i <count($datos); $i++) {
                      ?>
                        <tr>
                        <div class="">
                         <td><span><?php echo $datos[$i]["Codigo"]; ?></span></td>
                         <td><span><?php echo $datos[$i]["Nombre"]; ?></span></td>
                         <td>
                         <form id="form1" name="form1" method="post" action="">
                          <input name="id02" type="hidden" id="id02" value="<?php echo $i; ?>" />
                          <input name="cantidad02" type="number" id="cantidad02" value="<?php echo $datos[$i]['Cantidad']; ?>" />
                          <input type="image" name="imageField" src="../imagenes/actualizar.gif" />
                        </form>
                         </td>
                         <td><span><?php echo $datos[$i]["Precio"]; ?></span></td>
                         <td><span><?php echo $datos[$i]["Cantidad"] * $datos[$i]["Precio"];?></span></td>
                         <td>&nbsp;</td>
                        </div>
                        </tr>
 
 
                      <?php
                        $total = ($datos[$i]['Cantidad']*$datos[$i]["Precio"]) + $total;
                      }
                      }else{
                        echo "No hay productos";
                      }
                      	echo '<h3 id="total">Total: '.$total.'</h3>';
                      ?>
          </table>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Ayuda porfa en este codigo..

Publicado por xve (5520 intervenciones) el 09/11/2013 09:36:17
Hola Erick, no te entiendo muy bien cuando dices "quiero actualizar la cantidad"... a que cantidad te refieres, a la cantidad de la base de datos, o la que se muestra en la pantalla del producto?

Si nos puedes comentar con mas detalle...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda porfa en este codigo..

Publicado por Erick (3 intervenciones) el 09/11/2013 16:54:32
Quiero modificar la variable de Session por una nueva cantidad para el producto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Ayuda porfa en este codigo..

Publicado por xve (5520 intervenciones) el 09/11/2013 18:47:41
Ahora te entiendo Erick...

Creo que el problema lo tienes, en que has puesto: session_start();

Si no lo pones, no puedes trabajar con las variables de sessión... recuerda que tiene que estar al inicio del todo de la pagina.

Coméntanos si es esto, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda porfa en este codigo..

Publicado por Erick (3 intervenciones) el 09/11/2013 22:50:24
Si esta en el codigo session_start(); al inicio, puse solo la parte del codigo que creia que estaba mal..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda porfa en este codigo..

Publicado por Elier (92 intervenciones) el 12/11/2013 18:25:49
Te sugiero que separes las responsabilidades para que te sea mas fácil probar el código.

Este código puede tener errores, es sólo para que veas como puedes separar las responsabilidades.

Aqui hay un ejemplo de Shopping Chart http://www.peachpit.com/articles/article.aspx?p=1962481

Una clase para el carrito

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
//carrito.php
 
class Carrito {
 
	private $cantidad_productos;
 
	private $lista_productos;
 
	function insertar($id, $cantidad)
	{
		// Implementa insertar producto a $lista_productos
 
		// $indice = search($lista_productos, $id);
 
		// Si el ID existe entonces $lista_productos[$indice]['cantidad'] += $cantidad;
 
		// Si no existe el ID en $lista_productos entonces conectar a DB y obtener el producto
 
		// añadir datos a $lista_productos
	}
 
	function eliminar($id)
	{
		// Implementa eliminar producto de $lista_productos
 
		// $indice = search($lista_productos, $id)
 
		// Si existe entonces eliminar el producto de la lista 
 
		//$lista_productos = array_slice($lista_productos, $indice, 1);
	}
 
	function cantidad()
	{
		return $this->cantidad_productos;
	}
 
	function productos()
	{
		return $this->lista_productos;
	}
 
}
?>


La logica del negocio

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
?php
 
//insertar.php
 
include_once("carrito.php");
 
session_start();
if (isset($_SESSION['ventaYA']))
{
	$carrito = unserialize($_SESSION['ventaYA']);
}
else
{
	$carrito = new Carrito();
}
 
$id = null;
if(isset($_GET['id_pro']))
{
	$id = $_GET['id_pro'];
}
 
$cantidad = 1;
if(isset($_GET['cantidad']))
{
	$cantidad = $_GET['cantidad'];
}
 
// Como se inserta un producto es responsabilidad del carrito
$carrito->insertar($id,$cantidad);
 
$_SESSION['ventaYA'] = serialize($carrito);
 
// Le pedimos al carrito que nos devuelva todos los productos que contiene
$productos = $carrito->productos();
 
$cantidad = $carrito->cantidad();
 
 
// las variables $productos y $cantidad son accesibles en mostrar.php
include("mostrar.php");
 
?>


Ahora mostramos los productos mostrar.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<html>
	<head>
		<title>Lista de Productos</title>
	</head>
	<body>
	<table border="0" cellpadding="3" align="center" class="table table-hover">
		<tr bgcolor="#CCCCCC">
			<td>Codigo</td>
			<td>Descripcion</td>
			<td>Cantidad </td>
			<td>P.Unitario</td>
			<td>Valor Venta</td>
			<td>Eliminar</td>
		</tr>
		<?php
		$total = 0;
		if ($cantidad > 0)
		{
		    foreach ($productos as $producto)
		    {?>
			<tr>
				<div class="">
					<td><span><?php echo $producto["Codigo"]; ?></span></td>
					<td><span><?php echo $producto["Nombre"]; ?></span></td>
					<td><span><?php echo $producto["Cantidad"]; ?></span></td>
					<td><span><?php echo $producto["Precio"]; ?></span></td>
					<td><span><?php echo $producto["Cantidad"] * $producto["Precio"];?></span></td>
					<td>&nbsp;</td>
				</div>
			</tr>
			<?php $total += ($producto["Cantidad"] * $producto["Precio"]);
			}
		}
		else
		{
			 echo "No hay productos";
		}?>
 
		<h3 id="total">Total: <?php echo $total; ?> </h3>;
	</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar