
18/08/2012, 16:00
|
| | Fecha de Ingreso: agosto-2012
Mensajes: 6
Antigüedad: 12 años, 7 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
|