entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Consulta sobre querys sql

Buenas.

Tengo las siguientes query:

$sql = mysql_query("UPDATE usuarios SET vip = 0 WHERE vip > 0 AND $fecha_actual > FinUnix");
$sql = mysql_query("UPDATE usuarios SET FinUnix = 0 WHERE vip = 0");

Ahora estoy intentando agregar que nunca hice, no sé si sería posible. Lo que busco hacer es en dos tablas diferentes (pero en la misma base de datos), si el _VIP _de usuarios con el que trabajé antes está en 0, se procede a setear 0 a msn en mbmrs. Lo intenté así pero no me funcionó:

$sql = mysql_query("UPDATE mbmrs SET msn = 0 FROM usuarios WHERE vip = 0");

Después de lo anterior también (del mbmrs) quería realizar algo similar a esto:

$sql = mysql_query("UPDATE usuarios SET VIP = 0 WHERE VIP > 0 AND $fecha_actual > FinUnix");

Pero, sin setear nada. Si no que solo revisaría quienes de los registrados tienen _VIP > 0 AND $fechaactual > FinUnix y ADEMÁS, tienen la columna Online > 0. Para aquellos registrados, se haría un INSERT INTO como el siguiente, solo que en Jugador irían los nombres de los que mencioné anteriormente, tienen VIP > 0 AND $fecha_actual > FinUnix y ADEMÁS, tienen la columna Online > 0. ¿Es posible? Y hacerles un INSERT INTO a cada uno de ellos.

$sql = mysql_query("INSERT INTO actions (Adm, Act, Acc) VALUES ('Web', 'VIP', '".$aca_el_nombre."')");

Muchas gracias.

carlossevi comentado Abr 15, 2016

Uy vaya lío de pregunta, si no te importa voy a ir por partes. Me centro en la primera consulta, el UPDATE tomando datos de dos tablas. ¿De qué forma están relacionadas las tablas? Es decir, tiene que haber algún campo que compartan para poder unirlas en la consulta. ¿Puedes darnos la estructura?

KevinLeyes comentado Abr 15, 2016

Perdón, no te entendí mucho tampoco, jaja. Son dos tablas diferentes pero están en la misma DB.
Gracias.

bl4z3r comentado Abr 15, 2016

Me huele que con un trigger se logra lo que querés...

KevinLeyes comentado Abr 15, 2016

Gracias por comentar.
Googleé algo pero no encontré algo muy bien explicado, lo había escuchado anteriormente. ¿Eso crearía una dependencia de cierta tabla por otra? Digo en cuanto al valor.
Saludos.

KevinLeyes comentado Abr 17, 2016

¿Alguien tiene idea?
Gracias.

1 Respuesta

2votos

ankeorum Puntos7190

KevinLeyes el fallo programático de tu base de datos, o al menos la información que nos falta es, qué dato vincula las dos tablas, quiero decir; la tabla mbmrs y la tabla usuarios tienen algún datos que las vincule? Por ejemplo:

campos de mbmrs: id_usuario, nombre, email
campos de usuarios: id_usuario, username, mail, VIP

Donde id_usuario relacione un usuario con un mbmrs? Si es así la consulta sería sencilla:

update mbmrs set msn = 0 where id_usuario in (select id_usuario from usuarios where VIP = 0)

Y listo, esa query actualizaría el campo msn a cero siempre y cuando la id_usuario se encuentre entre las id_usuario de usuarios donde VIP sea 0 y como id_usuario de una tabla y otra corresponde al mismo usuario pues 'voilá'.

Espero haberte ayudado

KevinLeyes comentado Abr 18, 2016

Hola @ankeorum, muchas gracias por tu explicación. Me fue de gran utilidad.
Con respecto a la segunda parte, ¿tenés idea de cómo podría llegar a armarlo? Son códigos en SQL que nunca empleé.

-

Después de lo anterior también (del mbmrs) quería realizar algo similar a esto:

$sql = mysql_query("UPDATE usuarios SET VIP = 0 WHERE VIP > 0 AND $fecha_actual > FinUnix");

Pero, sin setear nada. Si no que solo revisaría quienes de los registrados tienen _VIP > 0 AND $fechaactual > FinUnix y ADEMÁS, tienen la columna Online > 0. Para aquellos registrados, se haría un INSERT INTO como el siguiente, solo que en Jugador irían los nombres de los que mencioné anteriormente, tienen VIP > 0 AND $fecha_actual > FinUnix y ADEMÁS, tienen la columna Online > 0. ¿Es posible? Y hacerles un INSERT INTO a cada uno de ellos.

$sql = mysql_query("INSERT INTO actions (Adm, Act, Acc) VALUES ('Web', 'VIP', '".$aca_el_nombre."')");

Muchas gracias una vez más.
Saludos.

ankeorum comentado Abr 19, 2016

En primer lugar, si la pregunta anterior fue contestada márcala como respondida y realiza una nueva pregunta. Te lo digo porque te lo va a comentar algún administrador ;-)

En segundo lugar, tus consultas son un poco raras y desestructuradas, te aconsejo, para que nuestra ayuda sea la más apropiada, que pongas la estructura de tus tablas involucradas en tu pregunta y así entenderemos mejor lo que necesitas hacer. Yo si fuera tu marcaría mi respuesta como solución (si así lo fuera) y haría una pregunta nueva, en la nueva pregunta incluiría una captura de pantalla de la estructura de tus tablas y las relaciones que existen entre ellas, por ejemplo; por tu consulta intuyo que "acc" es el nombre de la cuenta de usuario, que se guarda en la tabla usuarios, pero en qué campo? el campo se llama también "acc" en la tabla usuarios? Con la estructura de las tablas involucradas en tu consulta sería todo mucho más sencillo. Para animarte a hacerlo correctamente te digo que a tu pregunta ¿es posible? te digo que si, que es posible, pero sin ver las tablas no se armarte la consulta.

SaludoS!

Por favor, accede o regístrate para responder a esta pregunta.

¿Conoces alguien que puede responder?
¡Comparte esta pregunta!


Otras Preguntas y Respuestas


Actividad Reciente

...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta