Foros del Web » Programando para Internet » PHP »

problemas al guardar datos

Estas en el tema de problemas al guardar datos en el foro de PHP en Foros del Web. hola amigos estoy haciendo u sistema en que estoy usando un carrito igual al del ejemplo que hay en desarrolloweb, pero se me produjo un ...
  #1 (permalink)  
Antiguo 01/04/2004, 16:31
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
problemas al guardar datos

hola amigos estoy haciendo u sistema en que estoy usando un carrito igual al del ejemplo que hay en desarrolloweb, pero se me produjo un problema hago el foreach para guardar los datos y puedo tener mas de un articulo pero solo me esta guardando uno este es el codigo:


Código PHP:
if (isset($itemsEnCesta)){ 
foreach(
$itemsEnCesta as $k => $v ){
$seleccion="select id from libros where titulo='$k'";
$resp_select=mysql_query($seleccion,$link);
$rows_select=mysql_fetch_array($resp_select);
$id=$rows_select["id"];
$select_precio="select precio from datos_libros where id='$id'";
$resp_precio=mysql_query($select_precio,$link);
$rows_precio=mysql_fetch_array($resp_precio);
$precio=$rows_precio["precio"];
$titulo=$k;
$cantidad=$v;
$string="insert into boletas(id,titulo,cantidad,precio,rut,total,descuento,modo_pago,cheques)values('$n_boleta','$titulo','$cantidad','$precio','$rut','$total','$descuento','$pago','$n_cheques')";
$resp=mysql_query($string,$link);

 } 
todos las variables que guarda estan bien son pasadas de otro formulario les agradezco su ayuda.


  #2 (permalink)  
Antiguo 02/04/2004, 06:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Y has revisado que el bucle foreach() haga tantas pasadas (ejecute el bucle) como elementos debe traer tu $itemsEncesta ?

(otro detalle al margen .. Las dos consultas SQL que haces se pueden agrupar en una sóla:

Código PHP:
// Se usan ambas tablas para la consulas SQL .. uso un alias para el id.libro por si usas un nombre de campo id en tu tabla precio.
$sql="SELECT id.libros as id_libro,precio.datos_libros FROM libros,precio WHERE titulo.libro='$k' AND id.precio='$id'";
$resultado=mysql_query($sql,$link) or die (mysql_error());

// accedo directamente al resultado .. y campo que busco
$id=mysql_result($resultado,0,"id_libro");
$precio=mysql_result($resultado,0,"precio");

// El resto de tu código ...
$titulo=$k;
$cantidad=$v;
$string="insert into  boletas(id,titulo,cantidad,precio,rut,total,descue nto,modo_pago,cheques)values('$n_boleta','$titulo' ,'$cantidad','$precio','$rut','$total','$descuento','$pago','$n_cheques')";
$resp=mysql_query($string,$link); 
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 02/04/2004, 06:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Otra observación .. en tu "boleta" deberías guardarte en lugar del "título" del articulo que vendes el ID de ese artículo para relacionarlo con su descriptción y demás detalles originales del articulo (el précio no .. pues puede variar y debes guardar el precio que se vendío el artículo .. pero a nivel de descripción del artículo te servirá)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 02/04/2004, 14:08
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
ok probe el mismo codigo que me propusiste lo inserte dentro de l forreach(), lo que guardo es el precio de venta, pero sucedio lo siguiente me dice "Table 'libreria.precio' doesn't exist" quede plop porque no sale nombrado libreria.precio, mmmmm i need help.
  #5 (permalink)  
Antiguo 02/04/2004, 15:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si te fijas .. la estructura de las llamadas en SQL a várias tablas se hace:

nombreTabla(punto)nombreCampo

Así que si observas .. verás que en el ejemplo que puse me equivoqué con el nombre de tus tablas .. puse "libreria" y la tuya parece ser que se llama "libros" .. Revisalo atendiendo a esa teoría.

un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 02/04/2004, 15:06
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
este sql no esta bien, estan primero los campos y luego la tabla:

$sql="SELECT id.libros as id_libro,precio.datos_libros FROM libros,precio WHERE titulo.libro='$k' AND id.precio='$id'";

debiera ser:

$sql="SELECT libros.id as id_libro,datos_libros.precio FROM libros,precio WHERE libros.titulo='$k' AND precio.id='$id'";
  #7 (permalink)  
Antiguo 02/04/2004, 15:52
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
ok muchas gracias
  #8 (permalink)  
Antiguo 02/04/2004, 16:13
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
Sigo con errores

Cambie algunas cosas del codigo, pero aún asi sigue guardando solo un dato, por lo del codigo del foreach segun lo que temgo entendido realiza el codigo que esta dentro de el segun la cantidades de elementos que encuentre y no entiendo creo yo que esta bien pero no puedo ver el error el codigo quedo asi


Código PHP:
if (isset($itemsEnCesta)){ 
foreach(
$itemsEnCesta as $k => $v ){
// Se usan ambas tablas para la consulas SQL .. uso un alias para el id.libro por si usas un nombre de campo id en tu tabla precio.
$sql="SELECT libros.id as id_libro,datos_libros.precio as precio_lib FROM libros,datos_libros WHERE libros.titulo='$k'";//AND datos_libros.id='$id'";
$resultado=mysql_query($sql,$link) or die (mysql_error());

// accedo directamente al resultado .. y campo que busco
$id=mysql_result($resultado,0,"id_libro");
$precio=mysql_result($resultado,0,"precio_lib");

// El resto de tu código ...
$titulo=$k;
$cantidad=$v;
$string="insert into  boletas(id,titulo,cantidad,precio,rut,total,descuento,modo_pago,cheques)values('$n_boleta','$titulo'  ,'$cantidad','$precio','$rut','$total','$descuento','$pago','$n_cheques')";
$resp=mysql_query($string,$link);


 }
 
?> 
  #9 (permalink)  
Antiguo 02/04/2004, 16:26
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
mejor dicho lo que me interesa es guardar cada elemento del item en cesta y a su vez guardar su id y precio, pero no se bien como recorrer la variable de session para ir agregando elemento por elemento.
  #10 (permalink)  
Antiguo 05/04/2004, 13:37
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
por favor alguien me puede aclarar esto
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 04:48.