Ver Mensaje Individual
  #5 (permalink)  
Antiguo 18/08/2012, 16:00
robe92
 
Fecha de Ingreso: agosto-2012
Mensajes: 6
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Problema carrito compra

Pues llevo todo el dia viendo paso a paso cual puede ser el problema y he llegado a la conclusión de que solo crea un nuevo pedido si la cantidad de articulos seleccionada en el carrito es como maximo 3. Si se seleccionan 4 o más me tira el error del invalid number y la verdad, no entiendo nada ya. Ojala puedan orientarme porque estoy mas perdido que el barco del arroz.
Muchas gracias.


Edit: He reducido el codigo, comprobando primero el último pedido que está creado, para luego incrementarlo en 1. Seguidamente creo el pedido gracias a ese dato y añado las lineas de pedido.

Código:
<?php
session_start();
require_once 'gestionBD.php';
$conexion = conectar();

/////////// COMPROBAR ULTIMO PEDIDO Y SUMAR 1 PARA EL PROXIMO ////////////

 
function sacarMaxPed($Usuario, $conexion){
 $stmt1 = $conexion->prepare("SELECT MAX(ID_PED) AS MAXPED FROM PEDIDO WHERE COD_PER = :usuario");
 $stmt1->bindParam(':usuario', $Usuario);
 $stmt1->execute();
 
 while($reg1 = $stmt1->fetch()){
 	
   var_dump($reg1);
	 
   $_SESSION['MXPD'] = $reg1['MAXPED'];
   
   echo "<br>  Ultimo pedido: ". $_SESSION['MXPD'];
 
   $reg1 = $stmt1->fetch();
 }

}


 echo sacarMaxPed($_SESSION['usuarioLogueado'],$conexion);
 COMMIT;
$lastPed2 = $_SESSION['MXPD'] + 1;
echo "Ultimo pedido actualizado: ".$lastPed2;

/////////// CREAR NUEVO PEDIDO QUE SERÁ EL ULTIMO QUE HABIA +1 ////////////

	//if(isset($_SESSION['usuarioLogueado'])){
	
		$FechaActual=date("d\\/n\\/Y");
		echo "   Precio total: ".$_SESSION['precioTotal']." euros";

		function insertaPedido($ped,$fec,$total,$per,$conexion) {

                $stmt = $conexion -> prepare("INSERT INTO PEDIDO VALUES(:pedido,:FechaActual,:total, :persona)");
                $stmt->bindParam(':FechaActual', $fec);
                $stmt->bindParam(':total', $total);
                $stmt->bindParam(':persona', $per);
				$stmt->bindParam(':pedido', $ped);
                
                $stmt -> execute();
               
         
		}
			echo insertaPedido($lastPed2,$FechaActual,$_SESSION['precioTotal'],$_SESSION['usuarioLogueado'],$conexion);
			echo "<br>Se ha insertado correctamente el pedido!!!";
		//	}



/////////// INSERTA NUEVA LINEA DE PEDIDO EN EL PEDIDO CREADO ////////////

function sacarArticulo ($cantidad,$subtotal,$regart,$ultimoPedido,$conexion){
	$registros3 = $conexion->prepare("select * from ARTICULO");
	$registros3->execute();
	
	while($reg3 = $registros3->fetch()){
	echo "<br>variableeee: ".$_SESSION["Art".$reg3['ID_ART']];
 		if(isset($_SESSION["Art".$reg3['ID_ART']])){
 			    
			$cantidad = $_SESSION["Art".$reg3['ID_ART']];
			
			$regart = $reg3['ID_ART'];
			
			echo "<br>ID articulo: ".$regart;	
			$registros4 = $conexion->prepare("insert into LINEAS_PEDIDO values(:cantidad, :subtotal, :regart, :mx)");
			
				$registros4->bindParam(':subtotal', $subtotal);
				$registros4->bindParam(':regart', $regart);
				$registros4->bindParam(':cantidad', $cantidad);
				$registros4->bindParam(':mx', $ultimoPedido);
				
				$registros4->execute();
		
		}
	}
}
//echo sacarArticulo($cantidad,$subtotal,$regart,$conexion);
echo sacarArticulo($cantidad,$subtotal,$regart,$lastPed2,$conexion);

unset($_SESSION["Art".$_POST[ID_ARTICULO]]);

//session_destroy();

?>

Última edición por robe92; 18/08/2012 a las 16:04 Razón: añado codigo nuevo