Foros del Web » Programando para Internet » PHP »

Problema con UPDATE

Estas en el tema de Problema con UPDATE en el foro de PHP en Foros del Web. Hola amigos a ver si pueden hecharme una mano, tengo el siguiente codigo y quiero hacer un UPDATE de todos los registros (costo) despues de ...
  #1 (permalink)  
Antiguo 31/10/2008, 14:17
 
Fecha de Ingreso: marzo-2007
Mensajes: 4
Antigüedad: 17 años, 1 mes
Puntos: 0
Problema con UPDATE

Hola amigos a ver si pueden hecharme una mano, tengo el siguiente codigo y quiero hacer un UPDATE de todos los registros (costo) despues de hacer un pequeño calculo, el problema esta que me actualiza todos los datos con el mismo valor al hacer el UPDATE, no se me ocurre como hacerlo, a ver si me pueden dar un pequeño ejemplo de como podria hacerlo....desde ya muchas gracias

Código PHP:
$query "SELECT a.nombre, a.dolar, b.articulo, b.proveedor, b.tipo, b.costo, b.iva, b.utilidad, b.precio_final FROM proveedor a, productos b";
$resultmysql_db_query($dbname$query$link) or die ("No se pudo ejecutar la consulta");

while(
$line mysql_fetch_assoc ($result)){    

if (
$_POST["nombre"] == $line['proveedor'] && $line['tipo']==2){
    
$nuevo_costo = (($_POST["dolar"]) * ($line['costo']))/$line['dolar'];
            
$imp= (($line["iva"]) * ($nuevo_costo)) / 100;  
            
$cost$nuevo_costo $imp;
            echo 
"<br>$cost</br>"
            
$query "UPDATE productos SET costo='$cost' WHERE proveedor = '".$_POST['nombre']."' AND tipo=2 "
            
mysql_db_query($dbname$query$link) or die("No se pudieron modificar los datos de la base de datos");
    }

  #2 (permalink)  
Antiguo 31/10/2008, 14:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con UPDATE

Hola martin_arg,

Tendrías que cambiar tu UPDATE para que en el WHERE le pases el valor del la linea actual que rescatas en $line.

Saludos.
  #3 (permalink)  
Antiguo 31/10/2008, 14:25
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 16 años, 5 meses
Puntos: 3
Respuesta: Problema con UPDATE

Para empezar tipo es numerico o caracter..?!?

Prueba asi a ver..

sql="UPDATE productos SET costo='".$cost."' WHERE proveedor = '".$_POST['nombre']."' AND tipo=2"

Salu2..!!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #4 (permalink)  
Antiguo 31/10/2008, 14:25
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Problema con UPDATE

Es posible que no te este ejecutando la sentencia del update, imprime la sentencia antes de ejecutarla. Así podrás ver que es lo que se genera.

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #5 (permalink)  
Antiguo 31/10/2008, 14:28
 
Fecha de Ingreso: enero-2008
Mensajes: 163
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Problema con UPDATE

pues al parecer a lo que veo como nose muy bien como esta la bd como tienes productos me imagino io que lo tienes relacionado con proveedores me imagino yo q un proveedor te puede dar varios productos el problema seria segun io que actualiza todas las relaciones donde tienen el nombre del proveedor creo yo si no pues prueba hacer un echo antes del if y checa las variables del if para ver donde esta el error eso ago yo es algo tedioso pero tienes tu table de verdad jejeje
  #6 (permalink)  
Antiguo 31/10/2008, 15:52
 
Fecha de Ingreso: marzo-2007
Mensajes: 4
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Problema con UPDATE

El problema que tengo es que la variable $cost va tomando valores diferentes, para cada costo que se ingreso en dolares (tipo 2) cuando hace el UPDATE modifica los costos de tipo 2 y del proveedor que llega por POST, el problema está es que modifica todos los valores con el ultimo valor que tomó la variable $cost, no se como implementar que haga un UPDATE modificando fila por fila con cada valor calculado de $cost del registro costo.

Les paso el dump:

CREATE TABLE `productos` (
`articulo` int(11) NOT NULL auto_increment,
`marca` varchar(50) NOT NULL default '',
`descripcion` varchar(200) NOT NULL default '',
`costo` float NOT NULL default '0',
`utilidad` int(3) NOT NULL default '0',
`precio_final` float NOT NULL default '0',
`proveedor` varchar(100) NOT NULL default '',
`IVA` float NOT NULL default '0',
`tipo` int(2) NOT NULL default '',
PRIMARY KEY (`articulo`)
) TYPE=MyISAM AUTO_INCREMENT=206 ;


CREATE TABLE `proveedor` (
`idp` int(10) NOT NULL auto_increment,
`nombre` varchar(50) NOT NULL default '',
`direccion` varchar(50) NOT NULL default '',
`localidad` varchar(50) NOT NULL default '',
`provincia` varchar(50) NOT NULL default '',
`pais` varchar(50) NOT NULL default '',
`telefono` varchar(50) NOT NULL default '',
`dolar` float NOT NULL default '0',
`marcas` varchar(200) NOT NULL default '',
`fax` varchar(50) NOT NULL default '',
`email` varchar(50) NOT NULL default '',
`web` varchar(50) NOT NULL default '',
`ciudad` varchar(50) NOT NULL default '',
`cp` varchar(30) NOT NULL default '',
PRIMARY KEY (`idp`)
) TYPE=MyISAM AUTO_INCREMENT=32 ;

En definitiva lo que tengo que hacer es que cuando el proveedor cabia el valor del dolar, se cambie todos los costos de los productos que fueron cargados en dolares de ese proveedor. Espero se entienda gracias.
  #7 (permalink)  
Antiguo 31/10/2008, 15:55
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Problema con UPDATE

Debes usar en el where algo como articulo=$line['articulo'] para que solo haga el update del regitro en curso.
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #8 (permalink)  
Antiguo 31/10/2008, 16:12
 
Fecha de Ingreso: marzo-2007
Mensajes: 4
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Problema con UPDATE

Gracias The Web Saint, problema solucionado era eso, y no me habia dado cuenta, que y gracias a los otros chicos por su 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 12:54.