Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/11/2011, 11:33
loro25
(Desactivado)
 
Fecha de Ingreso: noviembre-2003
Mensajes: 59
Antigüedad: 21 años
Puntos: 0
BD guarda datos duplicados

Hola aver si me podeis ayudar
resulta que estoy asiendo una tienda online y e echo una consulta pa que me guarde los pedidos que hacen los clientes en la base de datos automaticamente,
La consulta funciona bien, pero el problema es, que me los guarda duplicado al comprar solo un producto.

Os dejo el codigo:

Código PHP:
<?php require_once('Connections/tienda.php'); ?>
<?php
session_start
();
if(isset(
$_SESSION['carrito'])){
    
$carrito_mio=$_SESSION['carrito'];
}

?>

<?php 
    
if(isset($_SESSION['carrito'])){
        
$total=0
    for(
$i=0;$i<=count($carrito_mio)-1;$i ++){
        
$resumen'hay carrito';
    if(
$carrito_mio[$i]==NULL){
        
$resumen'no hay productos que enviar';
            }else{
            
$resumen'hay productos que enviar'
            
$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'];
            
$cantidad $carrito_mio[$i]['cantidad'];
            
$precio_unidad $carrito_mio[$i]['precio'];
            
$precio_total $total;
            
$total=$carrito_mio[$i]['precio'] * $carrito_mio[$i]['cantidad']; 
            
$estado 'recibido';
            
$pagos 'pendiente';

            
$pedido "INSERT INTO pedidos(usuarioid,fecha,hora,nombre_productos,cantidad,estado,precio_total,precio_unidad,pagos)";
            
$pedido.= "VALUES ('".$usuarioid."','".$fecha."','".$hora."','".$nombre_productos."','".$cantidad."','".$estado."','".$precio_total."','".$precio_unidad."','".$pagos."')";
            
$pedido_query mysql_query($pedido) or die (mysql_error());
    if(!
$pedido_query){header("location:error2.php");}
        }
        }
        }else{
            
$resumen'no hay carrito';}

?>
<?php

mysql_free_result
($pedidos);
?>

Por cierto lo hago con el dreamweaver por eso sale asi.

y el codigo del carrito es este:


Código PHP:
<?php
if(isset($_SESSION['carrito']) || isset($_POST['nombre'])){
    if(isset(
$_SESSION['carrito'])){
        
$carrito_mio=$_SESSION['carrito'];
        if(isset(
$_POST['nombre'])){
            
$nombre=$_POST['nombre'];
            
$precio=$_POST['precio'];
            
$cantidad=$_POST['cantidad'];
            
$donde=-1;
            for(
$i=0;$i<=count($carrito_mio)-1;$i ++){
               if(
$nombre==$carrito_mio[$i]['nombre']){
                   
$donde=$i;
               }
            }
            if(
$donde != -1){
                
$cuanto=$carrito_mio[$donde]['cantidad'] + $cantidad;
                
$carrito_mio[$donde]=array("nombre"=>$nombre,"precio"=>$precio,"cantidad"=>$cuanto);
            }else{
                
$carrito_mio[]=array("nombre"=>$nombre,"precio"=>$precio,"cantidad"=>$cantidad);
            }
        }
    }else{
        
$nombre=$_POST['nombre'];
        
$precio=$_POST['precio'];
        
$cantidad=$_POST['cantidad'];
        
$carrito_mio[]=array("nombre"=>$nombre,"precio"=>$precio,"cantidad"=>$cantidad);    
    }
    if(isset(
$_POST['cantidad2'])){
        
$id=$_POST['id'];
        
$cuantos=$_POST['cantidad2'];
        if(
$cuantos<1){
            
$carrito_mio[$id]=NULL;
        }else{
            
$carrito_mio[$id]['cantidad']=$cuantos;
        }
    }
    if(isset(
$_POST['id2'])){
        
$id=$_POST['id2'];
        
$carrito_mio[$id]=NULL;
    }
    
    
$_SESSION['carrito']=$carrito_mio;
}

?>

Última edición por loro25; 15/11/2011 a las 11:40