Foros del Web » Programando para Internet » PHP »

problema con realizar pedido para carro de compras

Estas en el tema de problema con realizar pedido para carro de compras en el foro de PHP en Foros del Web. Estoy realizando una web de compras en el que he insertado un carro de compras, en fin, todo funciona bien, login, añadir productos al carro, ...
  #1 (permalink)  
Antiguo 25/03/2010, 16:01
Avatar de moronino  
Fecha de Ingreso: marzo-2010
Mensajes: 55
Antigüedad: 14 años, 1 mes
Puntos: 0
problema con realizar pedido para carro de compras

Estoy realizando una web de compras en el que he insertado un carro de compras, en fin, todo funciona bien, login, añadir productos al carro, y hasta un administrador web que he realizado estupendo.

weno os cuento, el problema es que no me funciona bien el
Código PHP:
Ver original
  1. if (($rowUsuario=mysql_fetch_array($resultUsuario)))

El codigo es el siguiente:

Código PHP:
Ver original
  1. <?
  2.    
  3.     if (isset($_SESSION["id"]))
  4.     {
  5.         include("conexion.php");
  6.         $link=Conectarse();
  7.         $sql = "select * from clientes where idcliente=" . $_SESSION["id"];
  8.         $resultUsuario=mysql_query($sql,$link);
  9.         if (($rowUsuario=mysql_fetch_array($resultUsuario))) {
  10.             $datosCliente="";
  11.             $datosCliente .= "Nombre: " . $rowUsuario["nombre"] . "<br />";
  12.             $datosCliente .= "Apellidos: " . $rowUsuario["apellidos"] . "<br />";
  13.             $datosCliente .= "DNI: " . $rowUsuario["dni"] . "<br />";
  14.             $datosCliente .= "Domicilio: " . $rowUsuario["domicilio"] . "<br />";
  15.             $datosCliente .= "Población: " . $rowUsuario["poblacion"] . "<br />";
  16.             $datosCliente .= "Provincia: " . $rowUsuario["provincia"] . "<br />";
  17.             $datosCliente .= "CP: " . $rowUsuario["cp"] . "<br />";
  18.             $datosCliente .= "País: " . $rowUsuario["pais"] . "<br />";
  19.             $datosCliente .= "Email: " . $rowUsuario["email"] . "<br />";
  20.             $datosCliente .= "Teléfono: " . $rowUsuario["telefono"] . "<br />";
  21.        
  22.             $i=0;
  23.             $total=0;
  24.             $totalProducto=0;
  25.             $pedido="";
  26.             for ($i=0;$i<count($_POST["precioUnitario"]);$i++)
  27.             {
  28.                 $sql = "select nombre from " . $_POST["tipo"][$i] . " where id=" . $_POST["id"][$i];
  29.                 $result=mysql_query($sql,$link);
  30.                 if (($row=mysql_fetch_array($result)))
  31.                 {              
  32.                     $totalProducto = $_POST["precioUnitario"][$i]*$_POST["unidades"][$i];
  33.                     $total += $totalProducto;
  34.                    
  35.                     $pedido .= $row["nombre"] . "<br />" . "Cantidad: " . $_POST["unidades"][$i] . "<br />" . "Precio: " . $totalProducto;
  36.                     if ($_POST["precioUnitario"][$i])
  37.                     {
  38.                         $pedido .= " ";
  39.                     }
  40.                     $pedido .= "<br /><br />";
  41.                 }
  42.                 mysql_free_result($result);
  43.             }
  44.             $pedido .= "<b>Total Pedido: " . $total . " Euros</b><br />";
  45.            
  46.             $pedido .= "<b>Forma de Pago: " . $_POST["formaPago"] . "</b>";
  47.            
  48.             $fechaHoraAhora=date("Y-m-d H:i:s");
  49.             $campos="(fecha,datoscliente,lineaspedido,comentarios)";
  50.             $valores="('" . $fechaHoraAhora . "'";
  51.             $valores .= ",'" . $datosCliente . "'";
  52.             $valores .= ",'" . $pedido . "'";
  53.             $valores .= ",'" . $_POST["comentarios"] . "')";
  54.            
  55.             $sql = 'Insert into pedido ' . $campos . ' VALUES ' . $valores;
  56.             mysql_query($sql,$link);
  57.            
  58.             $sql= "SELECT MAX(id) id from pedido";
  59.             $resultPedido=mysql_query($sql,$link);
  60.             if ($rowPedido=mysql_fetch_array($resultPedido))
  61.             {
  62.                 $idPedido=$rowPedido["id"];
  63.             }
  64.             mysql_free_result($resultPedido);
  65.            
  66.             include("enviamail.php");
  67.             $contenido='Estimado/a ' . $_POST["nombre"] . ',<br><br>
  68.                 Hemos recibido su pedido, realizado mediante <b>ventabebidas.com</b><br><br>
  69.                
  70.                 Le informamos que su nº de pedido es: <b>' . $idPedido .'</b><br /><br />
  71.                
  72.                 A continuación le mostramos los detalles que nos constan de su pedido:<br/><br />
  73.                 <b>Datos del cliente</b><br />' . $datosCliente . '<br /><br />
  74.                 <b>Datos del pedido</b><br />' . $pedido . '<br /><br />
  75.                 <b>Comentarios del cliente</b><br />' . $_POST["comentarios"] . '<br /><br />
  76.                 Si ve algún error en la información anterior, comuníquenoslo a la mayor brevedad.<br /><br />
  77.                 Un saludo de parte del equipo de ventabebidas.com.';
  78.  
  79.             enviaMail($contenido,$rowUsuario["email"],"[email protected]","ventabebidas.com", "Confirmación Pedido");
  80.             enviaMail($contenido,"[email protected]","[email protected]","ventabebidas.com", "Pedido Num. " . $idPedido);
  81. ?>     
  82.             <p>Su pedido se ha realizado correctamente. <br>
  83.             Le hemos enviado un e-mail indicándole los detalles del pedido.</p>       
  84. <? 
  85.         }
  86.         else
  87.         {
  88. ?>         
  89.             <p>Usted no consta como cliente registrado, por favor, antes de realizar un pedido, regístrese.</p>
  90. <?         
  91.         }
  92.         mysql_free_result($resultUsuario);     
  93.         mysql_close($link);
  94.     }
  95.     else
  96.     {
  97. ?>
  98.         <p>Para poder realizar compras debes estar previamente conectado como cliente. Introduce tu e-mail y contraseña en el panel clientes de la izquierda.<br />
  99.         <br />
  100.         Si aún no estás registrado, puedes hacerlo pulsando <a href="registro.php">aquí</a>.</p>
  101. <?
  102.     }
  103. ?>
Al realizar la comprobacion, me salta el segundo else:

Código PHP:
Ver original
  1. else
  2.         {
  3. ?>         
  4.             <p>Usted no consta como cliente registrado, por favor, antes de realizar un pedido, regístrese.</p>
  5. <?         
  6.         }

Nose porque, ya que todo esta comprobacion la estoy ejecutando con el login correspondiente, sino no podria al carrito de compras claro esta.

Necesito ayuda plis...

Gracias de antemano.:-

Última edición por moronino; 25/03/2010 a las 16:08 Razón: resaltar codigo php
  #2 (permalink)  
Antiguo 25/03/2010, 16:39
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: problema con realizar pedido para carro de compras

Parece que no está funcionando el $_session["id"] en la consulta,
ponlo así a ver que tal

Código PHP:
$iduser=$_SESSION["id"];
echo 
$iduser// verifica que tiene valor
$sql "select * from clientes where idcliente=$iduser"
__________________
Tu álbum de cromos online!!
  #3 (permalink)  
Antiguo 25/03/2010, 17:03
Avatar de moronino  
Fecha de Ingreso: marzo-2010
Mensajes: 55
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: problema con realizar pedido para carro de compras

Keba... poniendolo asi:
Código PHP:
Ver original
  1. $iduser=$_SESSION["id"];
  2.         echo $iduser; // verifica que tiene valor
  3.         $sql = "select * from clientes where idcliente=$iduser";

No me entra por el if, entra por else..
Código PHP:
Ver original
  1. else
  2.         {
  3. ?>         
  4.             <p>Usted no consta como cliente registrado, por favor, antes de realizar un pedido, regístrese.</p>
  5. <?         
  6.         }

ad+ en la verificacion del
Código PHP:
Ver original
  1. echo $iduser
me esta recojiendo otro id qe no es el del logeado... y depende de los productos que meta en el carro me pone un id u otro...

que extraño!!!

Última edición por moronino; 25/03/2010 a las 17:05 Razón: resaltar php
  #4 (permalink)  
Antiguo 25/03/2010, 17:11
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: problema con realizar pedido para carro de compras

Otra cosa:

esta linea está mal

Código PHP:
if (($rowUsuario=mysql_fetch_array($resultUsuario))) { 
sería así
Código PHP:
if ($rowUsuario=mysql_fetch_array($resultUsuario)) { 
Si te coje el id de otro user puede ser por dos motivos:

Tienes alguna variable local, post, get etc con el nombre de una variable de sesión.

Estás trabajando en local y haces pruebas sin cerrar sesiones.
__________________
Tu álbum de cromos online!!
  #5 (permalink)  
Antiguo 25/03/2010, 17:34
Avatar de moronino  
Fecha de Ingreso: marzo-2010
Mensajes: 55
Antigüedad: 14 años, 1 mes
Puntos: 0
De acuerdo Respuesta: problema con realizar pedido para carro de compras

Muchas gracias santris llebabas razon, tenia 2 variables de session llamadas id. entces claro... se hacia la pisha un lio...
cambie de nombre a la variable id por idcli y funciona de maravilla.

gracias de nuevo.

Etiquetas: compras, pedido, realizar, carrito
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 10:48.