Foros del Web » Programando para Internet » PHP »

Carrito de compras

Estas en el tema de Carrito de compras en el foro de PHP en Foros del Web. Saludos, estoy creando un carrito de compras y me ha surgido un problema tengo una pantalla a donde voy a gregando los productos y actualizadon ...
  #1 (permalink)  
Antiguo 01/05/2005, 23:50
 
Fecha de Ingreso: diciembre-2003
Mensajes: 82
Antigüedad: 14 años
Puntos: 1
Pregunta Carrito de compras

Saludos, estoy creando un carrito de compras y me ha surgido un problema tengo una pantalla a donde voy a gregando los productos y actualizadon por cantidad sin ningun problema, el problema es cuando paso a la pantalla de check out adonde el cliente puede modificar los productos agregados, borrandolos o cabiandoles la cantidad y ahi es adonde tengo el problema, ya que cuando trato de actualizar los productos al cambiar la cantidad unicamente me toma los valores del ultimo registro el problema es como puedo hacer para pasar los valores de los campos cantidad de nproductos, se que para leer una varialble de un campo se ulitiza por ejemplo $Cantidad = $_POS[CANTIDAD] pero intento pasar los campos que muestro dinamicamente en la tabla por una array pero no me funciona unicamente me muestra el valor del ultimo campo ingresado como prodria hacer para tomar los valores de los campos cantidad uno por uno, nose si me explico, espero me puedan ayudar.
  #2 (permalink)  
Antiguo 02/05/2005, 01:26
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Definitivamente considero debes ser más claro. Hablas de campos, Base de Satos, páginas... pero no sabemos cómo funcionan, mencionas "tablas" pero no queda claro si son de HTML ó Base de Datos; no somos adivinos, quizá convendría colocoarás el código (ó parte de) que esta implicado en tu problema.

Ahora bien, $_POST (te faltó la T ó es otra cosa??) sirve para recojer datos que se han introducido en FORMULARIOS... y no más, pero lo asocias con "campos" y es entonces cuando no queda claro. Usualmente uno utiliza la palabra "campo" para referirse a los campos (valgase! ) de una Base de Datos... lo cuál nada tiene que ver con $_POST.

Si estás manejando consultas a Base de Datos y tu solo extraes un solo dato.... entonces prosiblemente tu problema (y solución) esté en la sentencia SQL que aplicas... se me ocurre quizá tengas un LIMIT... Quizá no emplees un ciclo correcto para desplegar todos los datos, entonces sería PHP.... no lo sabemos hasta no ver.

Por último mecionar que lo común en los carritos de compras es utilizar sesiones... mientras el usuario hace dichas compras solo guardar en Base de Datos cuando se ha completado la compra... y eso dependiendo del caso... Te dejo este enlace de una de las FAQ: http://www.forosdelweb.com/showthrea...998#post238998

Espero te sirva de algo... pero para ayudarte mejor procura replantear el problema de una forma más clara, detallada y comprensible.

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 02/05/2005, 02:21
 
Fecha de Ingreso: diciembre-2004
Mensajes: 71
Antigüedad: 13 años
Puntos: 0
Cuando a mi me pasa eso, uso esta función extraida del libro que figura en el comentario.

Guardala como include/debug.php y ponla con un include al principio de todos tus ficheros *.php.


Cuando tengas problemas hazle un dump() a tu código y verás que falla.


Código PHP:
<?
/* 
 * Rutina de ayuda a la depuración.
 * Extraido de: Desarrollo Web con PHP y MYSQL
 *              Laura Thomsom, Luke Welling 
 * debug.php 
 *
 * Muestra el valor de los distintos arrays GPCR en php.
 *
 * $_GET,$_POST,$_COOKIE,$_REQUEST
 */

 
function dump(){ 
  
//echo 'GLOBALS'.dump_array($_GLOBALS);
    
echo "<br />";
  echo 
'POST: '.dump_array($_POST);
    echo 
"<br />";
  echo 
'GET: '.dump_array($_GET);
    echo 
"<br />";
  echo 
'SESSION: '.dump_array($_SESSION);
    echo 
"<br />";
  echo 
'COOKIE: '.dump_array($_COOKIE);
    echo 
"<br />";
  echo 
'REQUEST: '.dump_array($_REQUEST);
  echo 
"<br />";
}
 
 function 
dump_array($array){
 
  if ( 
is_array($array)){
    
$size=count($array);
    
$string='';
    if (
$size){
      
$count=0;
      
$string .='{ ';
      
      
// Añade la clave y el valor de cada elementro al matriz
      
foreach ($array as $var=>$value){
      
$string .="$var = $value";
      if (
$count++<($size-1))
        
$string .=', ';
       }
       
$string .=' }';
            }
       return 
$string;
  }
  else {
    
// si no es una matriz, devuélvalo
    
return $array;
  }
 }

function 
debug ($text){
  echo 
"<br><font color=\"red\">".$text."</font>";
}

?>
  #4 (permalink)  
Antiguo 02/05/2005, 06:30
 
Fecha de Ingreso: diciembre-2003
Mensajes: 82
Antigüedad: 14 años
Puntos: 1
Disculpa jam1138, definitivamente no me pude explicar bien, cuando hablaba de campos me referia a los registros que estan asociados a las cajitas del formulario HTML adonde uno introduce los datos nose como llamarles, el problema no esta en introduccir o leer los registros de la base de datos sino en el formulario de salida a donde leo la cantidad de registros que el usuario ha comprado, cuando el usuario revisa cual ha sido su compra y desea hacerle una modificacion en el area de la cantidad nose como pasar los datos que extraigo de la tabla ya que los muestro en las cajitas de formurmulario <input name="Cantidad" type="text" id="Cantidad" value="<? echo $Cantidad; ?>" size="3" maxlength="3"> cantidad y si hay modificaciones no puedo tomar los registros uno por uno sino unicamente me toma el ultimo te posteo un pedazo del codigo para que me entiendas mejor te agradesco mucho la ayuda :

Código PHP:

$Cantidad = array ( $_POST['Cantidad'] );
$PrecioU = array ( $_POST['PrecioU'] );



switch ($Del)
{
    case 'delete':
    $SQLDeleteV = "Delete from Tabla where ProductoID = $ProID ";
    $QDelteV = mysql_query($SQLDele, $CONNECT);
    break;
    
    case 'update':
    
    
    $x=0;
    
    while($x < $RegU)
    {
    
    $SQLUpdate = "Update Tabla set Cantidad = $CantidadC[$x], Precio = $Cantidad[$x] * $PrecioU[$x]";
    $QUpdateV = mysql_query($SQLUpdate, $CONNECT); 
    
    $x++;
    }
    
    break;
    
    
}



$SQLVenta = "Select * from Tabla ";
$QVenta = mysql_query($SQLVenta,$CONNECT);

$RegV = mysql_num_rows($QVenta);


$SQLSubtotal = "Select SUM(Precio) as SubT from Tabla  ";
$QSubTotal = mysql_query($SQLSubtotal,$CONNECT);

$SUBTOTAL = mysql_result($QSubTotal,"SubT");
$IVA = $SUBTOTAL * $valor;
$TOTAL = $SUBTOTAL + $IVA;



?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>

<body>
<form action="<? echo $_SERVER['PHP_SELF']. "?hacer=update" ?>" method="post" name="form1"  >
<table width="751" height="0" border="1" align="center" cellpadding="2" cellspacing="0">
  <!--DWLayoutTable-->
  <tr>
    <td height="37" colspan="6" valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td height="30" colspan="2" align="center" valign="middle">Descripcion&nbsp;</td>
    <td width="71" align="center" valign="middle">Cantidad&nbsp;</td>
    <td width="83" align="center" valign="middle">Precio U.&nbsp;</td>
    <td width="85" align="center" valign="middle">Precio T. </td>
    <td width="118" valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
  </tr>
<?
  
 $v 
0;

while(
$v $RegV)
{

$ProID mysql_result($QVenta$v"ProductosID");
$Nombre mysql_result($QVenta$v"Nombre");
$Foto =  mysql_result($QVenta$v"Foto");
$Cantidad =  mysql_result($QVenta$v"Cantidad");
$Precio =  mysql_result($QVenta$v"PrecioU");
$PrecioT $PrecioV $Cantidad;


?> 
  <tr>
    <td width="93" height="96" valign="top"><img src="<? echo $Foto?>" width="95" height="91" > &nbsp;</td>
    <td width="263" align="center" valign="middle"><? echo $Nombre?>&nbsp;</td>
    <td align="center" valign="middle"><input name="Cantidad" type="text" id="Cantidad" value="<? echo $Cantidad?>" size="3" maxlength="3"></td>
    <td align="center" valign="middle"><input name="PrecioU" type="text" id="PrecioU" value="<? echo $Precio?>" size="7" maxlength="7" readonly="true"></td>
    <td align="center" valign="middle"><input name="PrecioT" type="text" id="PrecioT"  value="<? echo $PrecioT?>" size="7" maxlength="7"></td>
    <td align="center" valign="middle"><input type="button" name="Button" value="Borrar" onClick="window.location.href='<? echo $_SERVER['PHP_SELF']."?opcion=".$ProID."&hacer=delete" ?>'"></td>
  </tr>
<?
$v
++;
}
?>
  <tr>
    <td height="29" colspan="5" align="right" valign="middle">Sub-Total $:&nbsp;</td>
    <td align="right" valign="middle"><? echo $SUBTOTAL?>&nbsp;</td>
  </tr>
  <tr>
    <td height="25" colspan="5" align="right" valign="middle">I.V.A. $:&nbsp;</td>
    <td align="right" valign="middle"><? echo $IVA?>&nbsp;</td>
  </tr>
  <tr>
    <td height="25" colspan="5" align="right" valign="middle">Total $:&nbsp;</td>
    <td align="right" valign="middle"><? echo $TOTAL?>&nbsp;</td>
  </tr>
  <tr>
  
    <td height="40" colspan="5" valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
  <td align="center" valign="middle"><input type="submit" name="Submit" value="Actualizar" ></td>
  </tr>
</table>

</form>

P.D. Muchas gracias a5dy2 por el codigo de depuracion siempre he buscaco codigo para depurar en php pero los que he encotrado no me han servido de mucho lo pruebo y te cuento gracias de nuevo.

Saludos a todos
  #5 (permalink)  
Antiguo 02/05/2005, 10:24
 
Fecha de Ingreso: diciembre-2003
Mensajes: 82
Antigüedad: 14 años
Puntos: 1
Saludos alguien me podria ayudar sigo teniendo problemas con el codigo les agradeceria mucho la ayuda.
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 20:44.