Primero:
Formatea bien tu código. Así como lo tienes, es complicado seguir la lógica. Si lo pones así es mucho más sencillo:
Código PHP:
<?php
/*seleccionamos bd*/
mysql_select_db('nombre_bd') or die(mysql_error());
if (isset($_SESSION['carrito'])) {
$total = 0;
for ($i = 0; $i <= count($carrito_mio) - 1; $i++) {
if ($carrito_mio[$i] != NULL) {
$total = $total + ($carrito_mio[$i]['precio'] * $carrito_mio[$i]['cantidad']);
/*variables*/
$estado = 'recibido';
$usuarioid = $_SESSION['MM_Username'];
date_default_timezone_set('Europe/Madrid');
$fecha = date('d-n-o');
$hora = date('H:i:s', strtotime('+0hours'));
$nombre_productos = $carrito_mio[$i]['nombre'];
$precio_unidad = $carrito_mio[$i]['precio'];
$cantidad = $carrito_mio[$i]['cantidad'];
$precio_total = $total;
$pagos = 'pendiente';
/*insertamos consulta en pedidos*/
$pedido = "INSERT INTO pedidos(usuarioid,fecha,hora,nombre_productos,cantidad,estado,precio_total,pagos,precio_unidad)";
$pedido .= "VALUES ('" . $usuarioid . "','" . $fecha . "','" . $hora . "','" . $nombre_productos . "','" . $cantidad . "','" . $estado . "','" . $precio_total . "','" . $pagos . "','" . $precio_unidad . "')";
$pedido_query = mysql_query($pedido);
/*verificacion nsertar datos en pedidos*/
if (!$pedido_query) {
header("location:error2.php?error=1");
} else {
}
}
}
}
?>
Segundo:
Este for
Código PHP:
for ($i = 0; $i <= count($carrito_mio) - 1; $i++) {
Sería lo mismo que este:
Código PHP:
for ($i = 0; $i < count($carrito_mio); $i++) {
Es más "sencillo" (almenos, para mi) de un vistazo saber lo q hace el for :) (Esto sólo es un apunte).
Tercero, ¿a q te refieres q duplica?
Por ejemplo, si insertas SÓLO un producto en el carrito, ¿te lo duplica en la BBDD?
Cuarto, ¿estás eguro que tienes un buen diseño de BBDD?
Piensa que un "pedido", puede tener muchos "productos". El pedido será el mismo...
Deberías tener, probablemente, dos tablas. Una con los datos del pedido, y otra con los productos del pedido... así no tendrías q duplicar usuario, fecha, etc del mismo pedido por producto que hagas. Algo así como:
pedidos
id | usuario | fecha | estado
productoPedidos
id | id_pedido | id_producto | id_cantidad | precio
Es sólo una sugerencia :)