Grabar datos tabla de un carro de la compra php+mysql
Necesito guardar datos de un carrito de la compra en una tabla de pedidos cuando el cliente pulsa para enviar su pedido, y no se como hacerlo. Creo que esta tabla "pedidos" debe tener un identificador de cliente (creo tenerlo pero tampoco se como guardarlo, todos los clientes deben identificarse para poder comprar), y los datos del carro de la compra como número de pedido (entiendo que esto lo da la tabla cada vez que se grabe un registro, campo clave autoincremental), fecha pedido, descripción producto, pvp, cantidad, etc. El código que tengo ahora mismo es el siguiente:
<?php require_once('Connections/carniceria.php'); ?>
<?php
session_start();
if(isset($_SESSION['carrito'])){
$carrito_mio=$_SESSION['carrito'];
$pedido="Pedido. <br><br>";
$total=0;
for($i=0;$i<=count($carrito_mio)-1;$i ++){
if($carrito_mio[$i] !=NULL){
$pedido .= $carrito_mio[$i]['descripcion'] . " *** " . $carrito_mio[$i]['pvp'] . " Euros/Kg " . " x " . $carrito_mio[$i]['cantidad'] . " gramos " . " *** " . " Total : " . $carrito_mio[$i]['pvp'] / 1000 * $carrito_mio[$i]['cantidad'] . " Euros <br> ";
$total = $total + $carrito_mio[$i]['pvp'] / 1000 * $carrito_mio[$i]['cantidad'] . " Euros <br> ";
}
}
$pedido.= "<br><br> Total: " . $total;
$nombre=$_POST['nombre'];
$apellidos=$_POST['apellidos'];
$email=$_POST['correo'];
$pedido.= "<br><br>De: ". $nombre;
$asunto="Carnicerias XXXXXXX - PEDIDO";
$empresa="Carnicerias XXXXXXX.com";
$correo_empresa=" ";
mail($email,$asunto,$pedido,"MIME-Version:1.0\nContent-type:text/html;charset=UTF-8\nFrom:$empresa<$correo_empresa>");
$asunto .= " Copia ";
mail($correo_empresa,$asunto,$pedido,"MIME-Version:1.0\nContent-type:text/html;charset=UTF-8\nFrom:$empresa<$correo_empresa>");
}
?>
<?php
if(isset($_SESSION['carrito'])){
$carrito_mio=$_SESSION['carrito'];
$descripcion;
$pvp;
$cantidad;
$total=0;
$fechapedido=date('y,m,d');
for($i=0;$i<=count($carrito_mio)-1;$i ++){
if($carrito_mio[$i] !=NULL){
$descripcion = $carrito_mio[$i]['descripcion'];
$pvp = $carrito_mio[$i]['pvp'];
$cantidad = $carrito_mio[$i]['cantidad'];
$total= $total + $carrito_mio[$i]['pvp'] * $carrito_mio[$i]['cantidad'];
// Con esta sentencia SQL insertaremos los datos en la base de datos
mysql_query("INSERT INTO pedidos (fechapedido, descripcion, pvp, cantidad, subtotal, totalpedido)
VALUES ('$fechapedido','$descripcion','$pvp','$cantidad','$subtotal','$totalpedido')";
}
}
}
?>
Ahora me está dando un error en la línea última del VALUES, no se si es por el punto y coma. Antes de darme este último error, llegaban perfectamente los correos al proveedor y al cliente. Espero que me puedas echar una mano porque estoy muy atascado.
<?php require_once('Connections/carniceria.php'); ?>
<?php
session_start();
if(isset($_SESSION['carrito'])){
$carrito_mio=$_SESSION['carrito'];
$pedido="Pedido. <br><br>";
$total=0;
for($i=0;$i<=count($carrito_mio)-1;$i ++){
if($carrito_mio[$i] !=NULL){
$pedido .= $carrito_mio[$i]['descripcion'] . " *** " . $carrito_mio[$i]['pvp'] . " Euros/Kg " . " x " . $carrito_mio[$i]['cantidad'] . " gramos " . " *** " . " Total : " . $carrito_mio[$i]['pvp'] / 1000 * $carrito_mio[$i]['cantidad'] . " Euros <br> ";
$total = $total + $carrito_mio[$i]['pvp'] / 1000 * $carrito_mio[$i]['cantidad'] . " Euros <br> ";
}
}
$pedido.= "<br><br> Total: " . $total;
$nombre=$_POST['nombre'];
$apellidos=$_POST['apellidos'];
$email=$_POST['correo'];
$pedido.= "<br><br>De: ". $nombre;
$asunto="Carnicerias XXXXXXX - PEDIDO";
$empresa="Carnicerias XXXXXXX.com";
$correo_empresa=" ";
mail($email,$asunto,$pedido,"MIME-Version:1.0\nContent-type:text/html;charset=UTF-8\nFrom:$empresa<$correo_empresa>");
$asunto .= " Copia ";
mail($correo_empresa,$asunto,$pedido,"MIME-Version:1.0\nContent-type:text/html;charset=UTF-8\nFrom:$empresa<$correo_empresa>");
}
?>
<?php
if(isset($_SESSION['carrito'])){
$carrito_mio=$_SESSION['carrito'];
$descripcion;
$pvp;
$cantidad;
$total=0;
$fechapedido=date('y,m,d');
for($i=0;$i<=count($carrito_mio)-1;$i ++){
if($carrito_mio[$i] !=NULL){
$descripcion = $carrito_mio[$i]['descripcion'];
$pvp = $carrito_mio[$i]['pvp'];
$cantidad = $carrito_mio[$i]['cantidad'];
$total= $total + $carrito_mio[$i]['pvp'] * $carrito_mio[$i]['cantidad'];
// Con esta sentencia SQL insertaremos los datos en la base de datos
mysql_query("INSERT INTO pedidos (fechapedido, descripcion, pvp, cantidad, subtotal, totalpedido)
VALUES ('$fechapedido','$descripcion','$pvp','$cantidad','$subtotal','$totalpedido')";
}
}
}
?>
Ahora me está dando un error en la línea última del VALUES, no se si es por el punto y coma. Antes de darme este último error, llegaban perfectamente los correos al proveedor y al cliente. Espero que me puedas echar una mano porque estoy muy atascado.
1 Respuesta
Respuesta de Jorge Vila
1