Foros del Web » Programando para Internet » PHP »

Guardar pedido carrito compra en tabla

Estas en el tema de Guardar pedido carrito compra en tabla en el foro de PHP en Foros del Web. Saludos a todos, Les indico que soy bastante novato. Mi problema es que no se como guardar el pedido de un carro de la compra ...
  #1 (permalink)  
Antiguo 03/12/2010, 12:22
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 13 años, 7 meses
Puntos: 0
Guardar pedido carrito compra en tabla

Saludos a todos,
Les indico que soy bastante novato. Mi problema es que no se como guardar el pedido de un carro de la compra en una tabla que se llamara pedidos. El caso es que la sentencia mysql_query la cambié por un echo para ver si pasaba datos, y efectivamente me los pasa, pero no consigo grabarlos en la tabla. Les dejo el código por si alguien ve mi error:

LA PRIMERA PARTE ES LA CONEXION A LA BASE DE DATOS

<?php require_once('Connections/carniceria.php'); ?>
<?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 VALUES ('', '$id_del_comprador', '$fechapedido', '$descripcion', '$pvp', '$cantidad', '$total')");

}
}
}

?>

Gracias
  #2 (permalink)  
Antiguo 03/12/2010, 13:01
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
Respuesta: Guardar pedido carrito compra en tabla

Prueba asi:

Código PHP:
$sql_insert="INSERT INTO pedidos (campo1, campo2, campo3, campo4, campo5, campo6, campo7) VALUES ('', '$id_del_comprador', '$fechapedido', '$descripcion', '$pvp', '$cantidad', '$total')";
mysql_query($sql_insert) or die('Error en la inserci&oacuten: '.mysql_error()); 
Obviamente sustituye los nombres de los campos 1,2,3...7 por los de la tabla
  #3 (permalink)  
Antiguo 03/12/2010, 13:32
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Guardar pedido carrito compra en tabla

Efectivamente consigo guardar los datos en la tabla. Muchas gracias CATPAW

Ahora tengo que dar un número de pedido para cada línea, para luego permitir al administrador el acceso a cada pedido. Entiendo que lo ideal sería tener un contador para cada pedido que llegue, sea de 1 o de varias líneas el pedido. Si alguien me da una idea ... por favor.

Los novatos tenemos estas cosas. El ponerme a programar sin tener claro lo que quiero hacer en cada momento, es un error que espero no volver a cometer.

Gracias a todos
  #4 (permalink)  
Antiguo 03/12/2010, 13:46
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
Respuesta: Guardar pedido carrito compra en tabla

Bueno necesitas un campo mas en tu tabla que sea numero de pedido...
lo que yo hago es mediante una consulta checar cual fue el ultimo id que se guardo, lo tomo en una variable y le aumento en uno, asi se ira guardando secuencialmente...ademas lo concateno con la fecha actual, de manera que queda:

1-20101203
2-20101203
...
  #5 (permalink)  
Antiguo 03/12/2010, 14:09
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Guardar pedido carrito compra en tabla

Muy amable catpaw, haré lo que me has indicado, creo que te he entendido. Te comentaré si soy capaz de realizarlo, en cualquier caso, muchisimas gracias por tu ayuda.
  #6 (permalink)  
Antiguo 08/12/2010, 06:19
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Guardar pedido carrito compra en tabla

Buenas de nuevo,

Como dije el otro día, entiendo perfectamente lo que hay que hacer pero soy INCAPAZ. Necesito crear un contador de pedidos para cada sesión, se pidan 1 o las líneas de productos que sean. El campo en la tabla se podría llamar numped.

Como bien decía Catpaw "Bueno necesitas un campo mas en tu tabla que sea numero de pedido...
lo que yo hago es mediante una consulta checar cual fue el ultimo id que se guardo, lo tomo en una variable y le aumento en uno, asi se ira guardando secuencialmente".

¿Alguien me puede ayudar con el código? Les pongo lo que tengo de momento.

<?php require_once('Connections/carniceria.php'); ?>
<?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
$sql_insert="INSERT INTO pedidos (pedidosid, numped, clienteid, fechapedido, descripcion, pvp, cantidad, total) VALUES ('', '$numped', '$id_del_comprador', '$fechapedido', '$descripcion', '$pvp', '$cantidad', '$total')";
mysql_query($sql_insert) or die('Error en la inserci&oacuten: '.mysql_error());
}
}
}

?>

Gracias
  #7 (permalink)  
Antiguo 08/12/2010, 06:44
 
Fecha de Ingreso: diciembre-2010
Ubicación: Rosario, Santa Fe
Mensajes: 326
Antigüedad: 13 años, 4 meses
Puntos: 13
Respuesta: Guardar pedido carrito compra en tabla

Cita:
Necesito crear un contador de pedidos para cada sesión, se pidan 1 o las líneas de productos que sean. El campo en la tabla se podría llamar numped.
Bueno entonces tendríamos que hacer lo siguiente, usamos el i del for como numero de pedido.

Código PHP:
$sql_insert="INSERT INTO pedidos (pedidosid, numped, clienteid, fechapedido, descripcion, pvp, cantidad, total) VALUES ('', '".$i."', '$id_del_comprador', '$fechapedido', '$descripcion', '$pvp', '$cantidad', '$total')"
Ahora nos falta solo identificar cada carro de compras. Yo por mi parte agregaría otro campo para el id del carro, supongamos que le llamamos id_carro, la cosa sería más o menos así.
Antes del for obtenemos la última id carro que hay:
Código PHP:
$rs mysql_query("SELECT MAX(id_carro) FROM pedidos") or die(mysql_error());
if(
$mid mysql_fetch_row($rs)) {
  
$mid++;
}else{
  
$mid 0;

Así tenemos nuestro id y listo, lo agregamos en la consulta de inserción.
  #8 (permalink)  
Antiguo 08/12/2010, 12:23
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Guardar pedido carrito compra en tabla

Ante todo gracias por tu ayuda areslepra. He hecho lo que creo que me comentas, pero no consigo guardar ni el carroid ni el número de pedido. Guardo todos los datos menos estos dos. El código es:

<?php require_once('Connections/carniceria.php'); ?>
<?php
if(isset($_SESSION['carrito'])){
$carrito_mio=$_SESSION['carrito'];
$descripcion;
$pvp;
$cantidad;
$total=0;
$fechapedido=date('y,m,d');
$rs = mysql_query("SELECT MAX(carroid) FROM pedidos") or die(mysql_error());
if($mid = mysql_fetch_row($rs)) {
$mid++;
}else{
$mid = 0;
}
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
$sql_insert="INSERT INTO pedidos (pedidosid, carroid, numped, clienteid, fechapedido, descripcion, pvp, cantidad, total) VALUES ('', '$carroid', '".$i."', '$id_del_comprador', '$fechapedido', '$descripcion', '$pvp', '$cantidad', '$total')";
mysql_query($sql_insert) or die('Error en la inserci&oacuten: '.mysql_error());
}
}
}

?>

Saludos
  #9 (permalink)  
Antiguo 08/12/2010, 18:05
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Guardar pedido carrito compra en tabla

Hola a todos. Despues de varias probaturas creo que lo necesito es que el campo numped me mantenga el mismo numero de pedido mientras esté activa la sesión de compra (al terminar el pedido inicializo la sesión). Ahora mismo, lo que hace es que suma uno por cada línea de pedido.

Creo que se hace con foreach, pero no se como. Les dejo el código por si alguien me puede decir como o me deja un ejemplo.

<?php require_once('Connections/carniceria.php'); ?>
<?php
if(isset($_SESSION['carrito'])){
$carrito_mio=$_SESSION['carrito'];
$nombre=$_POST['nombre'];
$apellidos=$_POST['apellidos'];
$descripcion;
$pvp;
$cantidad;
$total=0;
$fechapedido=date('y,m,d');
$rs = mysql_query("SELECT MAX(numped) FROM pedidos") or die(mysql_error());
if($mid = mysql_fetch_row($rs)) {
$mid++;
}else{
$mid = 0;
}
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'];
$subtotal = $carrito_mio[$i]['pvp'] / 1000 * $carrito_mio[$i]['cantidad'];
// Con esta sentencia SQL insertaremos los datos en la base de datos
$sql_insert="INSERT INTO pedidos (pedidosid, numped, nombre, apellidos, fechapedido, descripcion, pvp, cantidad, subtotal) VALUES ('', '".$i."', '$nombre', '$apellidos', '$fechapedido', '$descripcion', '$pvp', '$cantidad', '$subtotal')";
mysql_query($sql_insert) or die('Error en la inserci&oacuten: '.mysql_error());
}
}
}

?>

Gracias

Etiquetas: carrito, compra, pedido, tablas
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 23:19.