SQL - Query

   
Vista:

Query

Publicado por Kevin (5 intervenciones) el 12/04/2016 22:24:18
Buenas.

Me gustaría saber cómo sería la manera correcta de hacer lo siguiente en SQL.
Estoy buscando ejecutar este archivo a través de un CRON o algo similar para automatizarlo, por lo que necesito:

Que cada vez que se abra el archivo PHP, éste haga una query buscando en la tabla usuarios todos los registrados que tienen la columna VIP mayor a 0.
Luego de esto, se procedería a chequear (si es que no puede unificarse y hacerse en conjunto en la anterior query) de esos registrados que tienen la columna VIP mayor a 0, si la variable $fecha_actual es mayor que la variable $aca_la_query['FinUnix'] (almacenado en usuarios) de cada uno de ellos, en caso de serlo, a aquellos que tienen un VIP seteado quiere decir que se les expiró por la fecha, por lo que se procedería a hacer un UPDATE en usuarios, seteando VIP a 0.

Había hecho algo más o menos pero está lógicamente mal hecho, me gustaría saber cómo sería la manera correcta.

1
2
3
4
5
6
7
$sql = mysql_query("SELECT * FROM usuarios WHERE VIP>'0' ORDER BY ID DESC");
if($queryvip = mysql_fetch_array($sql))
if($queryvip['VIP'] > 0) { $es_vip = true; }else{ $es_vip = false; }
if($fecha_actual > $queryvip['FinUnix']) { $expiro = true; }else{ $no_expiro = false; } ?>
if($es_vip AND $expiro) {
$sql_update = mysql_query("UPDATE usuarios SET VIP='0' WHERE VIP>'0'");
}

Desde ya, gracias y saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Query

Publicado por Isaias (690 intervenciones) el 13/04/2016 17:29:38
¿Que motor de base de datos manejas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Query

Publicado por Kevin (5 intervenciones) el 13/04/2016 17:35:28
¿MySQL? ¿phpMyAdmin?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Query

Publicado por Yamil Bracho (4 intervenciones) el 13/04/2016 17:41:30
Por el codigo que tienes es MySQL.
Puedes hacer algo como

$sql = "UPDATE usuarios SET vip = 0 WHERE vip > 0 AND FinUnix > $fechaActual";
mysql_query($sql);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Query

Publicado por Kevin (5 intervenciones) el 13/04/2016 18:37:40
Gracias, me quedó bien ahí.

1
2
$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 algo más 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ábamos antes está en 0, se procede a setear 0 a msn en smf_members. Lo intenté así pero no me funcionó:

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

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Query

Publicado por Kevin (5 intervenciones) el 13/04/2016 19:23:38
Después de lo anterior también (del smf_members) quería realizar algo similar a esto:

1
$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 $fecha_actual > 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.

1
$sql = mysql_query("INSERT INTO panel_acciones (Administrador, Accion, Jugador) VALUES ('Web', 'VIP', '".$aca_el_nombre."')");

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Query

Publicado por Kevin (5 intervenciones) el 14/04/2016 00:51:17
No sé si para consultar otras cosas como lo he hecho en estas preguntas es necesario crear otra pregunta ya que deja de tener relación directa con la pregunta principal, así que para llevar una mejor organización hice eso.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar