Foros del Web » Programando para Internet » PHP »

restas sobre mysql

Estas en el tema de restas sobre mysql en el foro de PHP en Foros del Web. Hola No se si esto sea posible pues ya lo consulte con anterioridad pero no obtuve respuesta.. Bueno, comento.. Necesito hacer una solicitud en php ...
  #1 (permalink)  
Antiguo 04/01/2006, 07:41
 
Fecha de Ingreso: enero-2006
Mensajes: 5
Antigüedad: 11 años, 11 meses
Puntos: 0
restas sobre mysql

Hola

No se si esto sea posible pues ya lo consulte con anterioridad pero no obtuve respuesta..

Bueno, comento..

Necesito hacer una solicitud en php a mysql en la que entre 2 tablas de una misma base de datos se reste una cifra de un campo de una de las tablas y se le ponga a otra.

Es decir, lo que quiero es por medio de un desplegable de un formulario con diversas opciones a seleccionar; 5, 10, 15, 20,...

Y que al pulsar enviar en esa opción de la del campo "a" de la tabla xx que tiene por ejemplo 55.00 y el campo a de la tabla xxx tiene 20.00 pues poder pasar de una por poner un ejemplo pues 5 y quede en la db a 50.00 y 25.00.

Bueno, no se si me he explicado bien, agradecería cualquier ayuda que me permita ver de desarrollar esto.

Gracias
  #2 (permalink)  
Antiguo 04/01/2006, 07:56
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 12 años, 8 meses
Puntos: 17
No entendí si querés obtener esos datos (SELECT) o modificarlos (UPDATE).

En la primera opción es simple...
Código PHP:
mysql_query("SELECT t1.campo1 + ".$variable." AS campo1, t2.campo2 - ".$variable." AS campo2 FROM tabla1 t1, tabla2 t2"); 
Para el segundo caso, creo que no se pueden hacer dos updates en dos tablas distintas con un sólo comando, ése tema si lo deberías preguntar en el foro de MySQL. Mi resolución sería...
Código PHP:
mysql_query("UPDATE tabla1 SET campo1 = campo1 + ".$variable."");
mysql_query("UPDATE tabla2 SET campo2 = campo2 - ".$variable.""); 
Saludos
  #3 (permalink)  
Antiguo 04/01/2006, 09:19
 
Fecha de Ingreso: enero-2006
Mensajes: 5
Antigüedad: 11 años, 11 meses
Puntos: 0
Gracias

Se trata de actualizar y efectivamente con update en 2 consultas lo puedo hacer..

Pero el problema es que NO quiero actualizar un dato si no RESTAR de uno y SUMAR en el otro.

Es decir, no es que en un campo vaya a poner 55.00 si no que lo que voy a hacer es cambiar 55.00 - 5.00 y en el otro 20.00 + 5.00 ahí creo que reside mi principal problema en restar y sumar una cantidad..

** Si esto es mas de mysql que php por favor me puedes decir como desvio la consulta a ese formo para no duplicar.

Gracias
  #4 (permalink)  
Antiguo 04/01/2006, 09:22
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 12 años, 6 meses
Puntos: 2
La verdad entendi muy poco, se me hace muy confuso entenderlo. Lo poco que entendi es que quieres restarle a un campo un numero y agregarcelo a otro campo en la otra tabla, nose que utilidad tenga esto pero se me ocurren estas cosas.
- Tal vez si armas de distinta forma logica la DB no tengas que hacer esto.
- Tendrias que recaer si o si en codigo PHP para realizarlo? Tal vez sea mas optimo realizarlo directamente en Sql.
- Pregunta en el foro de Base de Datos si no encuentras una respuesta aqui, tal vez sea mas Sql que PHP.

Saludos y si no te molesta intenta explicar o ser mas claro porque yo no entendi bien, y explica la utilidad tal vez sea pueda hacer de otra forma.
  #5 (permalink)  
Antiguo 04/01/2006, 11:25
 
Fecha de Ingreso: enero-2006
Mensajes: 5
Antigüedad: 11 años, 11 meses
Puntos: 0
Disculpa si la cuestión ha sido un poco confusa.. El problema es que de primeras no sabía muy bien como hacer y cuando no sabes por donde empezar realmente es dificil explicarte..

Bueno, creo que ya voy por buen camio.. La cosa está clara, se trata de 2 consultas una que suma y otra que resta...

Entonces, he creado un formulario, que envía el valor a (sumar o restar) a una seguna página donde se hacen las 2 consultas (la que suma y la que resta).

Ahora bien, me temo que la secuencia está mal.. He puesto:

<input type="text" name="nombre" value="<?php
$link = mysql_connect("localhost", "usuario", "pass");
mysql_select_db("db", $link);
$result = mysql_query("UPDATE tabla1 SET campo1 = campo1 - ".$importe."");
?>" size=50 maxlength=50>

Donde $importe es el valor a sumar o restar

El caso es que esto no funciona.. No actualiza nada, claro falta el mysql_result pero ¿que valores debería poner ahí??
  #6 (permalink)  
Antiguo 04/01/2006, 14:46
 
Fecha de Ingreso: enero-2006
Mensajes: 5
Antigüedad: 11 años, 11 meses
Puntos: 0
Casi lo tengo !!

Bueno, el caso es que ya casi funciona pero me está dando un error.

La resta funciona pero con la suma que es identica NO VA da un error:

Introduzco esto

<?php
$link = mysql_connect("localhost", "usuario", "pass");
mysql_select_db("db", $link);
$result = mysql_query("UPDATE tabla SET campo = campo + '$transfer' WHERE id=$id") or die (mysql_error());
?>

Pues bien a pesar que con la resta esto ha funcionado con la suma da el siguiente error:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Que no es que de mucha información

¿A que puede ser debido???
  #7 (permalink)  
Antiguo 04/01/2006, 14:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Quita las comillas simples .. si el dato es numérico (y vas a operar con el) no debes usarlas.

Un saludo,
  #8 (permalink)  
Antiguo 04/01/2006, 16:17
 
Fecha de Ingreso: enero-2006
Mensajes: 5
Antigüedad: 11 años, 11 meses
Puntos: 0
Me temo que no, esa opción ya la había probado pero el mensaje de error sigue siendo el mismo.

El caso es que la resta si la hace con las comillas simples.. El problema es solo con la suma.
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 15:04.