Foros del Web » Programando para Internet » PHP »

Sumar productos sin talla...

Estas en el tema de Sumar productos sin talla... en el foro de PHP en Foros del Web. Hola !! Buenos dias, vuelvo para insistir con el tema del carrito... Ya consegui resolver el tema de sumar productos con tallas.. Ahora vengo con ...
  #1 (permalink)  
Antiguo 12/02/2012, 06:27
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 3 meses
Puntos: 1
Sumar productos sin talla...

Hola !! Buenos dias, vuelvo para insistir con el tema del carrito... Ya consegui resolver el tema de sumar productos con tallas.. Ahora vengo con lo contrario.. Sumar productos cuando no tengan tallas..

Estoy creando la funcion comprobartalla a partir del idProducto.
Para saber si ese producto tiene talla asignada o no:
Código PHP:
Ver original
  1. function comprobartalla($idproducto)
  2.     {
  3.         global $database_conexionzulo, $conexionzulo;
  4.         mysql_select_db($database_conexionzulo, $conexionzulo);
  5.         $query_ConsultaFuncion = sprintf("SELECT * FROM tblproductotalla WHERE relProducto=%s", $idproducto);
  6.         $ConsultaFuncion = mysql_query($query_ConsultaFuncion, $conexionzulo) or die(mysql_error());
  7.         $row_ConsultaFuncion = mysql_fetch_assoc($ConsultaFuncion);;
  8.         $totalRows_ConsultaFuncion = mysql_num_rows($ConsultaFuncion);
  9.         if ($totalRows_ConsultaFuncion == 0)
  10.         return 0;
  11.         else return 1;
  12.         mysql_free_result($ConsultaFuncion);
  13.         }

Hasta aqui todo perfecto.. Comprueba si hay talla si hay delvuelve 1 si no devuelve 0.

Mi problema viene a la hora de comprobar si ya esta en el carrito. No se como hacer dos consultas a la vez... Es decir ahora me tocaria hacer lo mismo tal que asi:

SELECT * FROM tblcarrito WHERE idUsuario=%s AND idProducto=%s AND intTransaccionEfectuada = 0", $_SESSION['MM_IdUsuario'], $idproducto);

Si hay algo lo updateas si no hay nada lo añades a la base de datos...

Pero claro tendria que comparar el "0" o "1" de antes (si hay talla o no) y luego si existe o no en el carrito. Estoy en la segunda parte que no se como condicionar por asi decirlo los dos a la vez... :S

Alguna idea / solucion ?

Gracias de antemano !
  #2 (permalink)  
Antiguo 13/02/2012, 01:09
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Sumar productos sin talla...

No se entiende muy bien el problema pero puedes utilizar flags, algo así

1.
$enCarro = false;
$hayTalla = false;
2. Select talla, si hay talla:
$hayTalla = true;
3. Select carro, si esta en el carro
$enCarro = true;

Teniendo los dos valores haces lo que haga falta
if($enCarro && $hayTalla) ....
if(!$enCarro && $hayTalla) ....

etc...
Espero que sirva, saludos.
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 13/02/2012, 03:49
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Sumar productos sin talla...

Mira lo tengo asi:
Primero las fos funciones que estoy usando...

Código PHP:
Ver original
  1. // +++++++++++++++++++++++++++++++++++++++++++
  2. // +++++++++++++++++++++++++++++++++++++++++++
  3.  
  4. function comprobartalla($idproducto)
  5.     {
  6.         global $database_conexionzulo, $conexionzulo;
  7.         mysql_select_db($database_conexionzulo, $conexionzulo);
  8.         $query_ConsultaFuncion = sprintf("SELECT * FROM tblproductotalla WHERE relProducto=%s", $idproducto);
  9.         $ConsultaFuncion = mysql_query($query_ConsultaFuncion, $conexionzulo) or die(mysql_error());
  10.         $row_ConsultaFuncion = mysql_fetch_assoc($ConsultaFuncion);
  11.         $totalRows_ConsultaFuncion = mysql_num_rows($ConsultaFuncion);
  12.         if ($totalRows_ConsultaFuncion == 0)
  13.         return 0;
  14.         else return 1;
  15.         mysql_free_result($ConsultaFuncion);
  16.         }
  17.        
  18. // +++++++++++++++++++++++++++++++++++++++++++
  19. // +++++++++++++++++++++++++++++++++++++++++++
  20.  
  21. function comprobarcarrito($idproducto)
  22.     {
  23.         global $database_conexionzulo, $conexionzulo;
  24.         mysql_select_db($database_conexionzulo, $conexionzulo);
  25.         $query_ConsultaFuncion = sprintf("SELECT * FROM tblcarrito WHERE idUsuario = %s AND idProducto=%s AND intTransaccionEfectuada = 0", $_SESSION['MM_IdUsuario'],$idproducto);
  26.         $ConsultaFuncion = mysql_query($query_ConsultaFuncion, $conexionzulo) or die(mysql_error());
  27.         $row_ConsultaFuncion = mysql_fetch_assoc($ConsultaFuncion);
  28.         $totalRows_ConsultaFuncion = mysql_num_rows($ConsultaFuncion);
  29.         if ($totalRows_ConsultaFuncion >0)
  30.         return $row_ConsultaFuncion['intContador'];
  31.         else
  32.         return 0;
  33.         mysql_free_result($ConsultaFuncion);
  34.     }

Y ahora como lo compraro:
Código PHP:
Ver original
  1. $carrito = comprobarcarrito($_GET['recordID']);
  2. $tallas = comprobartalla($_GET['recordID']);
  3. if (($tallas == 0) && ($carrito!=0)) {$insertSQL = sprintf("UPDATE tblcarrito SET intCantidad = intCantidad + %s WHERE intContador = %s",$_GET['intCantidad'],
  4.                        $carrito);}
  5.                        else { $insertSQL = sprintf("INSERT INTO tblcarrito (idUsuario, idProducto, intCantidad) VALUES (%s, %s, %s)",
  6.                        GetSQLValueString($_SESSION['MM_IdUsuario'], "int"),
  7.                        GetSQLValueString($_GET['recordID'], "int"),
  8.                        GetSQLValueString($_GET['intCantidad'], "int")); }

Pero no me esta funcionando... Estara mal la condicion ?
  #4 (permalink)  
Antiguo 13/02/2012, 04:40
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Sumar productos sin talla...

Lamentablemente estás utilizando este código de Dreamweaver y no te puedo decir cómo funciona. Para hacer debug de este código:
1. Al inicio de tu script agrega:
ini_set('display_errors', 1);
2. Haz echo de las query y pruébalas en un cliente mysql para ver qué resultados devvuelven
3. Haz echo de $carrito y $tallas para ver qué valor tienen
4. No relacionado con lo anterior, las llamadas a mysql_free_result() no funcionan nunca ya que se hacen después de haber salido de la función.
A ver si sirve, saludos
__________________
Fere libenter homines, id quod volunt, credunt.
  #5 (permalink)  
Antiguo 13/02/2012, 15:35
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Sumar productos sin talla...

funcion comprobar carrito me devuelve esto:

SELECT * FROM tblcarrito WHERE idUsuario = 1 AND idProducto=2 AND intTransaccionEfectuada = 0

funcion comprobartalla me devuelve esto:

SELECT * FROM tblproductotalla WHERE relProducto=2

El echo $carrito :

101

El echo $tallas:

0

Parece que el fallo esta en $carrito, no ?

Última edición por nobo; 13/02/2012 a las 15:49
  #6 (permalink)  
Antiguo 13/02/2012, 15:52
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Sumar productos sin talla...

Si estas depurando quita el reedireccionamiento por un instante para saber que es lo que esta saliendo mal, si no lo haces nunca te enterarás del problema real y solo estarás adivinando...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #7 (permalink)  
Antiguo 14/02/2012, 10:49
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Sumar productos sin talla...

Ya ya lo quite jejeje. Solo fue un momento, luego edite el post y puse esto:

Echo de esta consulta que es de la funcion comprobartalla:

$query_ConsultaFuncion = sprintf("SELECT * FROM tblproductotalla WHERE relProducto=%s", $idproducto);

SELECT * FROM tblproductotalla WHERE relProducto=2

Echo de la consulta de la funcion comprobarcarrito:

SELECT * FROM tblcarrito WHERE idUsuario = 1 AND idProducto=2 AND intTransaccionEfectuada = 0

Echo de $tallas:

0 (cuando no hay tallas)

1 (cuando hay tallas)

Echo $carrito:
88 (cuando esta en el carrito intContador)

0 (cuando no esta en el carrito) ....

He ido probando con el if y si me imprimia un echo por ejemplo cuando $tallas == 0 && $carrito !=0 ... He intentado hacer el UPDATE con esa comparacion y no me lo hace... Lo he intentado asi: $insertSQL = sprintf("UPDATE tblcarrito SET intCantidad = intCantidad + %s WHERE intContador = %s",$_GET['intCantidad'],
$carrito);

EDITO2:

Lo solucione asi:

Código PHP:
Ver original
  1. if ($tallas == 0 && $carrito!=0){$insertSQL = sprintf("UPDATE tblcarrito SET intCantidad = intCantidad + %s WHERE intContador = %s",$_GET['intCantidad'],
  2.                        $carrito);}
  3.                        elseif ($tallas == 0 && $carrito == 0) {$insertSQL = sprintf("INSERT INTO tblcarrito (idUsuario, idProducto, intCantidad) VALUES (%s, %s, %s)",
  4.                        GetSQLValueString($_SESSION['MM_IdUsuario'], "int"),
  5.                        GetSQLValueString($_GET['recordID'], "int"),
  6.                        GetSQLValueString($_GET['intCantidad'], "int"));}

Con un elseif... No se si hay otra manera... Si hay alguna mejor o que... Si hay alguna mejor hacermelo saber ;)

Última edición por nobo; 14/02/2012 a las 11:41
  #8 (permalink)  
Antiguo 14/02/2012, 11:42
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Sumar productos sin talla...

Solucionado !!!

Etiquetas: solucionado
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 12:51.