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="(xxxxxx)";
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
1
Haz un echo de "INSERT INTO pedidos (fechapedido, descripción, pvp, cantidad, subtotal, totalpedido)
VALUES ('$fechapedido','$descripcion','$pvp','$cantidad','$subtotal','$totalpedido'" para ver exactamente cual es la consulta que le estás haciendo a la máquina.
Si la haces en phpmyadmin te dirá exactamente cual es el problema
He probado como me has dicho con echo "INSERT INTO pedidos (fechapedido, descripción, pvp, cantidad, subtotal, totalpedido)
VALUES ('$fechapedido','$descripcion','$pvp','$cantidad','$subtotal','$totalpedido')";
Me muestra la fecha del día y valores del carro de la compra, pero sigo igual, no se como grabar en la tabla cada una de las lineas del carro, y también necesito el id del cliente. ¿Puedes ayudarme con el código? Cómo verás soy bastante novato, estoy muy obcecado y no se como seguir.
Saludos
Lo primero es que hacer un carrito de la compra sin tener mucha idea, NO ES FÁCIL!... Lo segundo, si quieres grabar el id del cliente en cada pedido, ábrele un campo concreto en esa tabla de la BD para que esa información se pueda guardar.
Espero que entiendas que no te puedo ayudar con el código completo, porque me llevaría bastantes horas!... pero te puedo recomendar algunos tutoriales:
http://www.programacionweb.net/articulos/articulo/?num=329
Experto quiero agradecerte tu ayuda, pero si me gustaría comentar que, no he intentado hacer el carrito de la compra sin saber nada de nada. Empecé a trabajar sobre ello con la ayuda de un curso.
Por otro lado, entiendo perfectamente que no puedas darme el código completo, de hecho no te lo he pedido. Igual es que me expreso mal, lo que te comentaba sobre el código es que si tu veías algo mal que pueda explicar porque no puedo grabar datos en la tabla, no que me hagas el código entero de un carrito de la compra. Como te decía en el mensaje anterior, probé como tu me dijiste con un echo para ver si pasaba datos o no, y efectivamente pasa los datos y los muestra en pantalla, pero no consigo que grabe los registros en la tabla. Eso es todo, pero insisto, agradezco tu ayuda.
Si el único fallo es que esto:
Mysql_query("INSERT INTO pedidos (fechapedido, descripcion, pvp, cantidad, subtotal, totalpedido)
VALUES ('$fechapedido','$descripcion','$pvp','$cantidad','$subtotal','$totalpedido')";
No te está insertando nada, obtén la query montado a través del echo y metela a través del phpmyadmin, ahí te dará datos más directos de lo que está fallando, porque si la query está bien, debería funcionar correctamente

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas