Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Solo graba el ultimo dato en la tabla

Estas en el tema de Solo graba el ultimo dato en la tabla en el foro de Mysql en Foros del Web. epales, en el carrito de compra, si compro un articulo este va a una tabla (ventas) con todas las descripciones del carrito de compra, pero, ...
  #1 (permalink)  
Antiguo 27/04/2006, 17:14
Avatar de Watas  
Fecha de Ingreso: diciembre-2005
Ubicación: Caracas
Mensajes: 151
Antigüedad: 18 años, 4 meses
Puntos: 0
Solo graba el ultimo dato en la tabla

epales, en el carrito de compra, si compro un articulo este va a una tabla (ventas) con todas las descripciones del carrito de compra, pero, si compro mas de un articulo solo me graba el primer articulo del carrto, es decir, si compro "a", "b" y "c" solo graba en la tabla "c".

Se puede corregir esto de que manera????

Gracias y Saludos
  #2 (permalink)  
Antiguo 28/04/2006, 07:36
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Hay que ver el codigo que usas para guardar y ver que no haya allí un error.
  #3 (permalink)  
Antiguo 28/04/2006, 09:48
Avatar de Watas  
Fecha de Ingreso: diciembre-2005
Ubicación: Caracas
Mensajes: 151
Antigüedad: 18 años, 4 meses
Puntos: 0
Este es el codigo con el cual se insertan los productos en la BD

ventas.php

Código PHP:
  $sql "INSERT INTO ventas (Artista, Titulo, Fecha, NumOrden, Formato, Precio, Total, NumVentas)";

$sql .= "VALUES ('$Artista','$Titulo','$date','$numero','$Formato','$Precio','$grantotal','$cantidad')";

$result mysql_query($sql); 
y este es el codigo del carrito, cuando tu estas llenando la planilla con tus datos aca se presentan el resumen de lo que has comprado

carrito.php

Código PHP:
  <?php 
 
  $date
=date("d-m-y");
  
$color=array("#FFFFFF","#F0F0F0"); 
  
$contador=0
  
//las 2 líneas anteriores sirven para hacer una tabla con colores alternos 
  
$suma=0
  
//antes de recorrer todos los valores de la matriz carro, ponemos a cero la variable $suma, 
  //en la que iremos sumando los subtotales del costo de cada item por la cantidad de unidades que se especifiquen 
   
foreach($carro as $k => $v){ 
   
//recorremos la matriz que tiene todos los valores del carro, calculamos el subtotal y el total 
   
$cantidad=$v['cantidad'];
   
$Artista=$v['Artista'];
   
$Titulo=$v['Titulo'];
   
$Formato=$v['Formato'];
   
$Precio=$v['Precio'];
   
$total=$v['cantidad']*$v['Precio']; 
   
$suma=$suma+$total
   
$grantotal=$suma+7500;
   
$contador++;//este es el contador que usamos para los colores alternos 
       
?> 
   
     <tr bgcolor="<?php echo $color[$contador%2]; ?>" class='prod'>    
      <td><?php echo $cantidad ?></td>
      <td><?php echo $Artista ?></td> 
      <td><?php echo $Titulo ?></td> 
      <td align="center"><?php echo $Formato ?></td> 
      <td align="right"><?php echo $Precio ?></td> 
     </td> 
  </tr></form> 
  <?php
  #4 (permalink)  
Antiguo 28/04/2006, 10:18
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Bueno, no se mucho (NADA, jejeje) de php, pero entiendo la lógica. Me parece que estas insertando el último registro escogido que ingresa al carrito, y no se si me equivoque, ingresas correctamente el monto total generado, pero siempre solo el último registro.
Estas recorriendo una matriz y asignando valores a otra matriz???, Como no se mucho de php, no veo el momento que al recorrer la matriz que especificas y por cada registro recorrido, haces el insert.
Saludos, espero que me hayas entendido.....
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #5 (permalink)  
Antiguo 28/04/2006, 10:34
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años
Puntos: 2
Deberias publicar el código completo de ventas.php para tratar de ver cual es el problema.
Saludos.
  #6 (permalink)  
Antiguo 28/04/2006, 10:45
Avatar de Watas  
Fecha de Ingreso: diciembre-2005
Ubicación: Caracas
Mensajes: 151
Antigüedad: 18 años, 4 meses
Puntos: 0
Gracias por las respuestas.
Ese es el codigo completo
  #7 (permalink)  
Antiguo 28/04/2006, 11:06
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años
Puntos: 2
¿Ese es el código completo de ventas.php? ¿el que publicaste antes? ¿De donde obtienen sus valores las variables $Artista, $Titulo, etc? ¿No deberias recuperarlas desde la variable de sesión? Ese código, tal como esta te va a insertar un registro con todos los campos en blanco, porque ninguna de las variables esta definida. La única posibilidad de que esas variables tengan un valor definido seria si tu directiva register_globals esta en "off" en tu php.ini y esas variables sen de entorno, GET, POST, Cookie o servidor (lo que no es muy recomendable por razones de seguridad)
Saludos.
  #8 (permalink)  
Antiguo 28/04/2006, 11:21
Avatar de Watas  
Fecha de Ingreso: diciembre-2005
Ubicación: Caracas
Mensajes: 151
Antigüedad: 18 años, 4 meses
Puntos: 0
Es algo complicado de explicar, pero funciona al pelo, lo unico que no hace es agregar mas de un registro en la BD cuando el usuario compra mas de un articulo, he aqui dnd viene mi duda del pq agrega el ultimo articulo de la compra y no la compra completa
Saludos y Gracias
  #9 (permalink)  
Antiguo 28/04/2006, 11:32
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años
Puntos: 2
Pero, ¿de donde obtenes los valores de los productos que tenes que agregar? ¿Cuando llamas a tu script ventas.php?. Ese script agrega sólo UN registro a la base de datos. Si guardas los datos de los productos en un arreglo tendrias que recorrer ese arreglo y realizar un insert por cada producto. O lo mejor seria recorrer el arreglo e ir generando una cadena que contenga todas los registros a ingresar (algo como (valor11, valor12,...),(valor21,valor22),etc) e ingresar todos esos registros en la base con una sola consulta insert. No puedo tratar de ayudarte si no se como trabajan tus scripts.
Saludos.
  #10 (permalink)  
Antiguo 28/04/2006, 11:34
Avatar de Watas  
Fecha de Ingreso: diciembre-2005
Ubicación: Caracas
Mensajes: 151
Antigüedad: 18 años, 4 meses
Puntos: 0
ok, si tienes msn seria excelente te lo explicaria mejor

Saludos

Última edición por Watas; 28/04/2006 a las 12:06
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 17:39.