Foros del Web » Programando para Internet » PHP »

Consulta inserta 2 veces, ¿alguien me ayuda?

Estas en el tema de Consulta inserta 2 veces, ¿alguien me ayuda? en el foro de PHP en Foros del Web. Hola amigos de forosdelweb, tengo un problema con una consulta que no logro resolver, soy algo nuevo en esto de PHP y estoy realizando una ...
  #1 (permalink)  
Antiguo 27/06/2010, 16:44
 
Fecha de Ingreso: junio-2010
Mensajes: 6
Antigüedad: 13 años, 9 meses
Puntos: 0
Consulta inserta 2 veces, ¿alguien me ayuda?

Hola amigos de forosdelweb, tengo un problema con una consulta que no logro resolver, soy algo nuevo en esto de PHP y estoy realizando una tienda en linea como proyecto escolar, la tienda esta practicamente funcional y terminada, pero me hace falta terminar una parte donde se insertaran las ordenes realizadas por los clientes en una tabla en la base de datos pero al hacer la consulta me inserta 2 veces los mismos valores en la BD.. He aqui el codigo, espero que alguien me pueda ayudar..

Código PHP:
<?php include('lib/config.php');
    
$carro $_SESSION['carro']; 
    
$productos ''
    
    foreach(
$carro as $k => $v)
    {
        
$unidad=$v['cantidad']>1?" unidades de ":" unidad de "
        
$productos.=$v['cantidad'].$unidad.$v['nombre']."+"
        
$costo=$v['precio']*$v['cantidad'];
    } 

    
$productos substr($productos,0,(strlen($productos)-1)); 
    
$username $_SESSION['username'];
    
$sql "select * from usuarios where username = '$username'"
    
$result mysql_query($sql);
    
$num_filas mysql_num_rows($result);
    if (
$num_filas 0)
    { 
        while (
$fila mysql_fetch_object($result))
            {
              
$id_cliente $fila->id_cliente;
              
$email $fila->email;
              
$destinatario $email
              
$asunto "Realizacion de pago de compra"
              
$head "From: [email protected]\r\n";
              
$head.= "To: ".$destinatario."\r\n";
              
$msg "------------------------------- \n";
              
$msg.= "   Realizacion de pago de compra \n";
              
$msg.= "------------------------------- \n";
              
$msg.= "Hola ".$username."\n\n";    
              
$msg.= "Usted ha realizado una compra en soccerjerseys.com.mx \n\n";
              
$msg.= "Para que su compra sea finalizada usted debe realizar un deposito bancario a la siguiente cuenta: \n\n";
              
$msg.= "Banco: Banamex \n";
              
$msg.= "Titular de la cuenta: Alejandro Ceme Chan \n";    
              
$msg.= "Numero de cuenta: 0582052792 \n";
              
$msg.= "CLABE (para transferencia electronica) = 072 180 00582052792 2 \n";
              
$msg.= "Referencia = 1MM153512 \n";
              
$msg.= "Cantidad a depositar = $".$costo." \n\n";    
              
$msg.= "------------------------------- \n";              
              
$msg.= "Reporte de pagos \n";
              
$msg.= "------------------------------- \n";
              
$msg.= "Una vez realizado su pago haga el favor de reportarlo enviando un correo electronico a [email protected] que mencione la referencia de pago 1MM153512 o adjuntando copia del comprobante de deposito. \n\n";
              
$msg.= "------------------------------- \n";
              
$msg.= "Resumen de productos comprados: \n";
              
$msg.= "------------------------------- \n";
              
$msg.= "Productos: ".$productos." \n";
              
$msg.= "Total a pagar: $".$costo." \n\n\n";
              
$msg.=" Atte. soccerjerseys.com.mx\n\n\n\n";
              
              
mail($destinatario$asunto$msg$head);
              echo 
"<script>alert('Se le ha enviado un correo electronico con los datos de la cuenta para finalizar su compra');history.back();</script>";
            }
              
$sql2 "insert into ordenes values";
              
$sql2 .= "(0, $id_cliente, '$productos', '$costo')";
              
mysql_query($sql2);
    } 
    else 
    { 
        echo 
"<script>alert('Error, no esta logueado');history.back();</script>";
    } 
?>
  #2 (permalink)  
Antiguo 28/06/2010, 02:43
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Consulta inserta 2 veces, ¿alguien me ayuda?

En este trozo no encuentro el porque de la duplicidad de los datos.
El error supongo que lo tendrás cuando llamas a este trozo de código, que lo llamaras 2 veces sin querer y por eso te lo insertará por duplicado.
  #3 (permalink)  
Antiguo 28/06/2010, 08:42
 
Fecha de Ingreso: junio-2010
Mensajes: 6
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Consulta inserta 2 veces, ¿alguien me ayuda?

Gracias por contestar vallu, y como dices realmente en el trozo de codigo que puse no hay error, por eso no entendia el porque de la duplicidad, pero ya he solucionado el problema, lo que pasaba es que cuando probaba el codigo en el servidor local, al intentar mandar el mail marcaba error al no estar habilitado el SMTP y el puerto 25, por eso creo que se ejecutaba dos veces la sentencia SQL. Pero al probarlo en el servidor remoto, ya no inserta dos veces el registro, ahora envia el email y posteriormente inserta los registros en la BD...

Etiquetas: Ninguno
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 08:33.