Foros del Web » Programando para Internet » PHP »

Problema con carrito de compras php

Estas en el tema de Problema con carrito de compras php en el foro de PHP en Foros del Web. Saludos, tengo un problema, estoy haciendo un carrito de compra (muy rustico) en php que esta "semi funcional" (crea archivos con el nombre del usuario ...
  #1 (permalink)  
Antiguo 27/10/2014, 03:43
 
Fecha de Ingreso: octubre-2014
Mensajes: 1
Antigüedad: 9 años, 6 meses
Puntos: 0
Problema con carrito de compras php

Saludos, tengo un problema, estoy haciendo un carrito de compra (muy rustico) en php que esta "semi funcional" (crea archivos con el nombre del usuario de la sesion con el pedido).

El problema es que cuando clickeo 2 (o mas) veces en UN articulo (del listado) en el carrito.php en lugar de incrementar la cantidad de dicho articulo, lo que hace es ponerlo 2 veces (dentro de una tabla html)... tengo el codigo pero no se como solucionar ese error.

Les dejo el codigo php que tengo, por ahi me pueden ayudar:

<?Php
if ($_POST['cambio'] == "Modificar")
{
$p = 0;
$g = 0;
$ver = file($_SESSION['cliente']);
$m = count($ver);
$c = $_POST['cantidad'];
$valor = $_POST['n'];
while ($p < $m)
{
$sep = explode(";", $ver[$p]);
if ($c[$p] <> 0)
{
$pedido[$g] = $sep[0] . ";" . $sep[1] . ";" . $sep[2] . ";" . $sep[3] . ";" . $sep[4] . ";" . $c[$p];
$g = $g + 1;
}
$p = $p + 1;
}

$h = 0;
unlink($_SESSION['cliente']);
$fp = fopen($_SESSION['cliente'], "a");
while ($h < $g)
{
fputs($fp, $pedido[$h]);
fputs($fp, chr(13) . chr(10));
$h = $h + 1;
}
fclose($fp);
}


$servidor = "localhost";
$usuario_bd = "root";
$password_bd = "admin";
$basedatos = "carrete";

$conexion = mysql_connect($servidor, $usuario_bd, $password_bd);
if (!$conexion)
{
echo "Error conectando a la base de datos.";
exit();
}

$resultado = mysql_select_db($basedatos, $conexion);
if (!$resultado)
{
echo "Error seleccionando la base de datos.";
exit();
}
$dato = $_POST['nro'];
if ($dato[0] <> "")
{
$sql = "select * from libros where Nro_catalogo='$dato[0]'";
$res = mysql_query($sql);
$archivo = $_SESSION['cliente'];
$fp = fopen($archivo, "a");
while ($row = mysql_fetch_array($res))
{
$nro = $row['Nro_catalogo'];
$titulo = $row['Titulo'];
$autor = $row['Autor'];
$genero = $row['Genero'];
$precio = $row['Precio'];
$cantidad = 1;
}

$pedido = $nro . ";" . $titulo . ";" . $autor . ";" . $genero . ";" . $precio . ";" . $cantidad;
if ($_SESSION['cliente']<>"")
{
fputs($fp, $pedido);
fputs($fp, chr(13) . chr(10));
fclose($fp);
}
}

if (file_exists($_SESSION['cliente']))
{
$ver = file($_SESSION['cliente']);
$totales = 0;
$j = 0;
$m = count($ver);

while ($j < $m)
{
$sep = explode(";", $ver[$j]);
$nr[$j] = $sep[0];
$tit[$j] = $sep[1];
$aut[$j] = $sep[2];
$gen[$j] = $sep[3];
$prec[$j] = $sep[4];
$can[$j] = $sep[5];
$totales = $totales + $prec[$j] * $can[$j];
$j = $j + 1;

}
}

?>

Ese es el codigo php del carrito (sin el session_start), si necesitan la pagina completa puedo subirla!

Muchisimas gracias!
  #2 (permalink)  
Antiguo 27/10/2014, 08:29
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Problema con carrito de compras php

Si le pones $cantidad=1 es eso lo que te guardará siempre... no te parece?
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #3 (permalink)  
Antiguo 27/10/2014, 12:14
Avatar de andres_15_  
Fecha de Ingreso: septiembre-2008
Ubicación: Cali
Mensajes: 232
Antigüedad: 15 años, 7 meses
Puntos: 7
Respuesta: Problema con carrito de compras php

Tu codigo PHP mas bonito: (¡Utiliza highlight!)

Código PHP:
Ver original
  1. <?Php
  2. if ($_POST['cambio'] == "Modificar")
  3. {
  4. $p = 0;
  5. $g = 0;
  6. $ver = file($_SESSION['cliente']);
  7. $m = count($ver);
  8. $c = $_POST['cantidad'];
  9. $valor = $_POST['n'];
  10. while ($p < $m)
  11. {
  12. $sep = explode(";", $ver[$p]);
  13. if ($c[$p] <> 0)
  14. {
  15. $pedido[$g] = $sep[0] . ";" . $sep[1] . ";" . $sep[2] . ";" . $sep[3] . ";" . $sep[4] . ";" . $c[$p];
  16. $g = $g + 1;
  17. }
  18. $p = $p + 1;
  19. }
  20.  
  21. $h = 0;
  22. unlink($_SESSION['cliente']);
  23. $fp = fopen($_SESSION['cliente'], "a");
  24. while ($h < $g)
  25. {
  26. fputs($fp, $pedido[$h]);
  27. fputs($fp, chr(13) . chr(10));
  28. $h = $h + 1;
  29. }
  30. fclose($fp);
  31. }
  32.  
  33.  
  34. $servidor = "localhost";
  35. $usuario_bd = "root";
  36. $password_bd = "admin";
  37. $basedatos = "carrete";
  38.  
  39. $conexion = mysql_connect($servidor, $usuario_bd, $password_bd);
  40. if (!$conexion)
  41. {
  42. echo "Error conectando a la base de datos.";
  43. exit();
  44. }
  45.  
  46. $resultado = mysql_select_db($basedatos, $conexion);
  47. if (!$resultado)
  48. {
  49. echo "Error seleccionando la base de datos.";
  50. exit();
  51. }
  52. $dato = $_POST['nro'];
  53. if ($dato[0] <> "")
  54. {
  55. $sql = "select * from libros where Nro_catalogo='$dato[0]'";
  56. $res = mysql_query($sql);
  57. $archivo = $_SESSION['cliente'];
  58. $fp = fopen($archivo, "a");
  59. while ($row = mysql_fetch_array($res))
  60. {
  61. $nro = $row['Nro_catalogo'];
  62. $titulo = $row['Titulo'];
  63. $autor = $row['Autor'];
  64. $genero = $row['Genero'];
  65. $precio = $row['Precio'];
  66. $cantidad = 1;
  67. }
  68.  
  69. $pedido = $nro . ";" . $titulo . ";" . $autor . ";" . $genero . ";" . $precio . ";" . $cantidad;
  70. if ($_SESSION['cliente']<>"")
  71. {
  72. fputs($fp, $pedido);
  73. fputs($fp, chr(13) . chr(10));
  74. fclose($fp);
  75. }
  76. }
  77.  
  78. if (file_exists($_SESSION['cliente']))
  79. {
  80. $ver = file($_SESSION['cliente']);
  81. $totales = 0;
  82. $j = 0;
  83. $m = count($ver);
  84.  
  85. while ($j < $m)
  86. {
  87. $sep = explode(";", $ver[$j]);
  88. $nr[$j] = $sep[0];
  89. $tit[$j] = $sep[1];
  90. $aut[$j] = $sep[2];
  91. $gen[$j] = $sep[3];
  92. $prec[$j] = $sep[4];
  93. $can[$j] = $sep[5];
  94. $totales = $totales + $prec[$j] * $can[$j];
  95. $j = $j + 1;
  96.  
  97. }
  98. }
  99.  
  100. ?>

Etiquetas: carrito, compras
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 16:34.