Foros del Web » Programando para Internet » PHP »

Contador de pedidos de carrito de compra

Estas en el tema de Contador de pedidos de carrito de compra en el foro de PHP en Foros del Web. Hola a todos, Necesito crear un contador de pedidos de un carro de la compra. El contador sería el campo número de pedido que yo ...
  #1 (permalink)  
Antiguo 10/12/2010, 12:45
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 14 años, 2 meses
Puntos: 0
Contador de pedidos de carrito de compra

Hola a todos,

Necesito crear un contador de pedidos de un carro de la compra. El contador sería el campo número de pedido que yo le he llamado numped. Lo que tengo ahora me numera secuencialmente cada linea de pedido del carrito, es decir, si creo un pedido con cuatro líneas, en el campo numero de pedido, tengo del 1 al 4, cuando yo necesito que aparezca en cada línea el mismo número de pedido.

Creo que debería hacerlo con foreach pero no se exactamente como. ¿Alguien me puede ayudar con el código? Aquí les dejo lo que tengo de momento.

<?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
  #2 (permalink)  
Antiguo 10/12/2010, 12:52
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 10 meses
Puntos: 9
Respuesta: Contador de pedidos de carrito de compra

y si guardas el numero de pedido en una sesion aparte?
__________________
Quitenme la vida pero no la bebida.
  #3 (permalink)  
Antiguo 10/12/2010, 13:23
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Contador de pedidos de carrito de compra

Gracias por tu respuesta cesarpunk, pero o no te entiendo o no me he explicado bien. El cliente cada vez que entra a comprar se tiene que identificar, a partir de ese momento es cuando puede realizar la compra. Supongamos que hace un pedido de tres lineas diferentes de productos (ahora mi código hace lo siguiente):

linea 1 - lomo de buey, número de pedido 1.
linea 2 - chuletas de cordero, número de pedido 2.
linea 3 - embutido, número de pedido 3.

Yo necesito lo siguiente:

linea 1 - lomo de buey, número de pedido 1.
linea 2 - chuletas de cordero, número de pedido 1.
linea 3 - embutido, número de pedido 1.

Cuando el cliente envia el pedido, se graban los datos en la tabla de pedidos, y se destruye la sesión, para que la siguiente vez que entre al sistema, se vuelva a identificar y se cree el siguiente pedido, que será el número que corresponda.

Gracias
  #4 (permalink)  
Antiguo 14/12/2010, 13:40
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Contador de pedidos de carrito de compra

Creo que lo que necesito es saber cúal es el último número de pedido, sumarle 1, y el número obtenido guardarlo como último número de pedido.

He estado mirando en este foro, creo que se podría hacer con SELECT MAX, he probado en alguna ocasión, pero siempre tengo algún tipo de error. Por favor, ¿alguien me podría echar una mano? El último código que tengo es el posteado más arriba.

Gracias
  #5 (permalink)  
Antiguo 14/12/2010, 17:34
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Contador de pedidos de carrito de compra

Tema cerrado, conseguí la solución por otro lado. Les dejo el código por si a alguien le hiciera falta. Se trata de un carro de la compra, cuando se tramita un pedido de productos, es generar un número de pedido que identifique a esos productos y al mismo tiempo, grabe todos los datos en una tabla:

<?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[0]++;
}else{
$mid[0] = 1; //1 porque seria el primer pedido no el pedido 0
}
$siguiente_pedido = $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 ('', '$siguiente_pedido', '$nombre', '$apellidos', '$fechapedido', '$descripcion', '$pvp', '$cantidad', '$subtotal')";
mysql_query($sql_insert) or die('Error en la inserci&oacuten: '.mysql_error());

}
}
}

?>

Saludos y gracias
  #6 (permalink)  
Antiguo 16/11/2014, 03:12
 
Fecha de Ingreso: noviembre-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Respuesta: Contador de pedidos de carrito de compra

Gracias por compartir tu código.
Era exactamente lo que estaba buscando,

Etiquetas: carrito, compra, contador
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 21:51.