Foros del Web » Programando para Internet » PHP »

Actualizar campo si se modifica otra tabla mysql

Estas en el tema de Actualizar campo si se modifica otra tabla mysql en el foro de PHP en Foros del Web. Buenas a todos. Tengo una base de datos con informacion de juegos y el problema lo tengo entre dos tablas: plataformas y juegos. Dentro de ...
  #1 (permalink)  
Antiguo 25/06/2012, 09:01
 
Fecha de Ingreso: enero-2010
Mensajes: 30
Antigüedad: 14 años, 3 meses
Puntos: 0
Pregunta Actualizar campo si se modifica otra tabla mysql

Buenas a todos.

Tengo una base de datos con informacion de juegos y el problema lo tengo entre dos tablas: plataformas y juegos.

Dentro de la tabla plataformas tengo un campo llamado numJuegos, en el se almacena cuantos juegos hay de dicha consola, esto lo condigo con la siguiente consulta.

Código:
SELECT COUNT(*) FROM juegos WHERE idPlataforma=84;
Siendo 84 la platataforma PS2.

Hasta ahí todo perfecto. El problema viene cuando quiero que en el campo numJuegos de plataforma se me añada +1 si inserto un juego nuevo en ps2, osea tendria que hacer un count(*) todo el rato, pero claro si yo pongo la consulta anterior en por defecto del campo de numJuegos en teoria todas las consolas tendria el numero de juegos de ps2 (id 84), mi pregunta es, como indico en por defecto que pongo en cada consola el num de jugos que le corresponde??, existe variables del tipo where nombre=$nombrePlataforma ??, se haria con una funcion o procedura?? o tendria que hacer con php sumar 1 al campo correspondiente si meto un juego (como lo tengo ahora, pero creo que es menos depurado)???

Muchas gracias por vuestra ayuda.
  #2 (permalink)  
Antiguo 25/06/2012, 09:17
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Actualizar campo si se modifica otra tabla mysql

usa un trigger
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 26/06/2012, 05:07
 
Fecha de Ingreso: enero-2010
Mensajes: 30
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Actualizar campo si se modifica otra tabla mysql

Gracias maycolalvarez por tu rapida contestacion.

Ya tengo hecho los dos triggers, uno que sume 1 si añado un juego y otro que reste uno si lo quito.

Pongo el codigo de uno de los triggers (ya que el otro cambia 1 signo).

Código:
DELIMITER $$

USE ``$$

CREATE
DEFINER=`root`@`localhost`
TRIGGER ``.`disparadorPrueba`
AFTER INSERT ON `infojuegos`.`juegos`
FOR EACH ROW
BEGIN
  UPDATE ``.`plataformas` SET `numJuegos`=`numjuegos`+1 WHERE `idPlataforma`='84'; 
END$$
Con esto los cambios se hacen en la plataforma "84", y lo que yo quiero es que detecte el idplataforma que he añadido en el registro del juego y ponerlo en el UPDATE del trigger, como hago eso??

He pensado en poner un SELECT dentro del update similar a esto.

Código:
UPDATE ``.`plataformas` SET `numJuegos`=`numjuegos`+1 WHERE `idPlataforma`='(SELECT nombre FROM juegos,plataformas WHERE ........ nombre=idplataforma)';
Pero eso no se si se puede hacer en mysql.

Se haria de alguna forma mejor??, con el select que estoy intentando?? procedura/funcion???.

Muchas Gracias.

Etiquetas: mysql
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:03.