Foros del Web » Programando para Internet » PHP »

php+sql problemas con cantidades

Estas en el tema de php+sql problemas con cantidades en el foro de PHP en Foros del Web. hola, saludos a todos. lo primero es que soy nuevo y estoy haciendo, mejor dicho estoy intentando hacer, un carrito de la compra. he conseguido ...
  #1 (permalink)  
Antiguo 31/03/2013, 12:02
 
Fecha de Ingreso: marzo-2013
Mensajes: 36
Antigüedad: 11 años, 1 mes
Puntos: 1
php+sql problemas con cantidades

hola, saludos a todos.
lo primero es que soy nuevo y estoy haciendo, mejor dicho estoy intentando hacer, un carrito de la compra.
he conseguido listar los productos y que estos se puedan añadir al carrito una vez que el usuario esta logado. sino lo esta, no tiene tal opción.
consigo pasar datos del producto y del usuario a la tabla carrito pero no consigo pasar la cantidad seleccionada ni mucho menos mantener el stock real.
al escoger una cantidad, tanto el stock como la cantidad para el carrito es 0. el resto de cosas se pasan bien.
aqui os dejo el código y haber si alguien me puede hechar una mano. gracias y saludos de antemano.

<?php

session_start();
extract($_REQUEST);
include("conectar_db.php");
$id= isset($_GET['id_llibre']) ? $_GET['id_llibre'] : NULL;
$quantitat=$_GET['selectQuantitat'];
echo 'Quantitat = '.$quantitat;
if(!isset($quantitat)){$quantitat=1;}
$sql = "SELECT * FROM productes WHERE id_llibre='".$id_llibre."'; ";
$result = mysql_query($sql);

if (!$result){
echo"merda no conecta";}
while ($row = mysql_fetch_array($result)){
echo"entra";

$nom_usuari=$row['nom_usuari'];
$id_llibre=$row['id_llibre'];
$titol=$row['titol'];
$quantitat=$row['quantitat'];
$preu=$row['preu'];
echo"$nom_usuari";
echo"$id_llibre";
echo"$titol";
echo"quantitat";
echo"preu";

if(isset($_SESSION['carro']))
$carro=$_SESSION['carro'];
$stock=$stock-$quantitat;
$restar="UPDATE productes SET stock='".$stock."' WHERE id_llibre='".$id_llibre."';";
mysql_query($restar);

$carro=array('nom_usuari'=>$nom_usuari,'id_llibre' =>$id_llibre,'titol'=>$titol,'quantitat'=>$quantit at,'preu'=>$preu);

mysql_query('INSERT INTO carret(nom_usuari, id_llibre, titol, quantitat, preu) values("'.$_SESSION["nom_usuari"].'","'.$id_llibre.'","'.$titol.'","'.$quantitat.'" ,"'.$preu.'")');

echo $_SESSION['carro'];
$_SESSION['carro']=$carro;
echo"$nom_usuari";
echo"$id_llibre";
echo"$titol";
echo"$quantitat";
echo"preu";
}
header("Location:principal.php?".SID);
?>
  #2 (permalink)  
Antiguo 31/03/2013, 20:39
MCF
 
Fecha de Ingreso: marzo-2008
Mensajes: 126
Antigüedad: 16 años, 2 meses
Puntos: 4
Respuesta: php+sql problemas con cantidades

Hola, oye un consejo, es un poco más estético y fácil de leer si al poner el código le das en el select "Highlight" y seleccionas el lenguaje -en este caso php- y entre las etiquetas pones todo el código, también sería un poco de ayuda si comentas el código ya que tienes algunos nombres poco descriptivos y es un poco más difícil entender el código así
  #3 (permalink)  
Antiguo 01/04/2013, 06:05
 
Fecha de Ingreso: marzo-2013
Mensajes: 36
Antigüedad: 11 años, 1 mes
Puntos: 1
Respuesta: php+sql problemas con cantidades

hola, MCF gracias por el consejo, aqui va el codigo comentado y con el "highlight"
saludos

Código PHP:
Ver original
  1. <?php  
  2.                        
  3. extract($_REQUEST);
  4. include("conectar_db.php");
  5.     $id= isset($_GET['id_llibre']) ? $_GET['id_llibre'] : NULL; //id_libro
  6.     $quantitat=$_GET['selectQuantitat']; // cantidad es igual a la cantidad seleccionada de un combobox
  7.     echo 'Quantitat = '.$quantitat; // echo cantidad
  8.     if(!isset($quantitat)){$quantitat=1;} // la cantidad es igual a 1
  9.         $sql = "SELECT * FROM productes WHERE id_llibre='".$id_llibre."'; ";    // seleccionamos de la tabla productos donde id_libro es libro, el de la cantidad seleccionada
  10.             $result = mysql_query($sql);
  11.  
  12.                 if (!$result){
  13. echo"problema de conexio";}
  14.                 while ($row = mysql_fetch_array($result)){
  15. echo"entra";
  16.  
  17. $nom_usuari=$row['nom_usuari']; //nombre_usuario
  18. $id_llibre=$row['id_llibre']; //id_libro
  19. $titol=$row['titol']; //titulo
  20. $quantitat=$row['quantitat']; //cantidad
  21. $preu=$row['preu']; // precio
  22. echo"$nom_usuari";
  23. echo"$id_llibre";
  24. echo"$titol";
  25. echo"quantitat";
  26. echo"preu";
  27.        
  28.         if(isset($_SESSION['carro'])) // sesion carro
  29.             $carro=$_SESSION['carro'];
  30.             $stock=$stock-$quantitat; // stock (table productos) = stock - cantidad (la catidad seleccionada de la combocox)
  31.             $restar="UPDATE productes SET stock='".$stock."' WHERE id_llibre='".$id_llibre."';"; // actualizamos la tabla productos con la diferencia del stock - la cantidad seleccionada
  32.             mysql_query($restar);
  33.  
  34. $carro=array('nom_usuari'=>$nom_usuari,'id_llibre'=>$id_llibre,'titol'=>$titol,'quantitat'=>$quantitat,'preu'=>$preu);
  35. // nombre usuario, id_libro, titulo, cantidad, precio
  36.  
  37. mysql_query('INSERT INTO carret(nom_usuari, id_llibre, titol, quantitat, preu) values("'.$_SESSION["nom_usuari"].'","'.$id_llibre.'","'.$titol.'","'.$quantitat.'","'.$preu.'")');
  38.  
  39. // insertamos en la tabla carrito nombre_usuario, id_libro, cantidad, precio
  40.  
  41. echo $_SESSION['carro'];
  42. $_SESSION['carro']=$carro;
  43. echo"$nom_usuari"; //nombre_usuario
  44. echo"$id_llibre"; //id_libro
  45. echo"$titol"; // titulo
  46. echo"$quantitat"; //cantidad
  47. echo"preu"; // precio
  48. }
  49. header("Location:principal.php?".SID); // volvemos a princiapl
  50. ?>
  #4 (permalink)  
Antiguo 02/04/2013, 04:45
MCF
 
Fecha de Ingreso: marzo-2008
Mensajes: 126
Antigüedad: 16 años, 2 meses
Puntos: 4
Respuesta: php+sql problemas con cantidades

Se ve muchísimo mejor

Ahora dices que no te respeta el stock verdad?? Supongo que en esta linea es donde debe de actualizarlo en la base de datos (aunque creo q es mas que obvio jaja)

Código PHP:
Ver original
  1. $restar="UPDATE productes SET stock='".$stock."' WHERE id_llibre='".$id_llibre."';"; // actualizamos la tabla productos con la diferencia del stock - la cantidad seleccionada

Pero antes de eso tienes

Código PHP:
Ver original
  1. $stock=$stock-$quantitat; // stock (table productos) = stock - cantidad (la catidad seleccionada de la combocox)

Pero antes no le das valor alguno a $stock (o por lo menos yo no lo vi) entonces $stock no tiene ningún valor, en php una variable no existe hasta que le asignas un valor, por ejemplo si haces:

Código PHP:
Ver original
  1. $fruta;
  2. echo $fruta;
  3. $fruta = "fresa";
  4. echo $fruta;

al principio te dará error porque en el primer echo $fruta aún no existe, la verdad nunca antes lo había hecho pero hasta donde mi razonamiento me da estas intentando restar nada - la cantidad; repito esto es si es que no pasé por alto donde asignaste primero $stock.

Y para saber bien porque no logras obtener la cantidad necesitamos que proporciones el código de la página desde donde mandas el formulario.

Espero haberte ayudado hasta ahora.

Etiquetas: mysql, select, sql, tabla
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 13:21.