Hola, buenas tardes, estoy tratando de hacer lo siguiente; Si ACCOUNTID1 es igual a ACCOUNTID2 se agrega un punto a una tabla en el SQL, el problema es que si hay más de 1 AccountID2 que se cumpla o AccountID1, solo agrega un punto en lugar de dos ya que se hacen dos comparaciones o eso es lo que quiero, no se si me explico bien :/
No estoy muy seguro si puedo publicar esto aquí.
Actualizo el POST
<?
$AccountID1Q=mssql_query("SELECT * FROM Recruit Where Recruited_by='".$user_auth_id."' and status='false'");
while($row=mssql_fetch_assoc($AccountID1Q)){
$AccountID1 =$row['AccountID'];
$status1 = $row['status'];
echo "".$AccountID1." status: ".$status1." ";
}
$AccountID2Q=mssql_query("SELECT TOP 1 * FROM Character Where AccountID='".$AccountID1."' ORDER BY Resets DESC");
while($row=mssql_fetch_assoc($AccountID2Q)){
$resets =$row['Resets'];
$AccountID2 = $row['AccountID'];
echo "".$resets."<br>";
}
if ($AccountID1 == $AccountID2 && $resets == 1) {
echo "se cumple todo ".$AccountID1." & ".$AccountID2."";
$suma_reclutados = $core_db->Execute("UPDATE Recruit SET reclutados=reclutados+1 WHERE AccountID='".$user_auth_id."'");
$suma_reclutados;
$change_status = $core_db->Execute("UPDATE Recruit SET status='true' WHERE AccountID='".$AccountID2."'");
$change_status;
}
?>
-De esta manera solamente se ejecuta uno a la vez, no todos a la vez como yo buscaba.
Esto es lo que he conseguido, hice unos cambios en la base de datos y así tener un status para que no agregue 1 reclutado cada que se actualice, así comprueba si el reclutado tiene el status en false y procede, de lo contrario no lo muestra en la Query, ahora lo siguiente; esto se ejecuta cada que se actualiza la página, pero solo funciona para la persona que esta logeada en el panel de usuario, ya que de ahí la variable "$user_auth_id", me gustaría poner que esto se actualizara de manera global cada 1 hora con los cron jobs de Mu Core, aún que esto creo que funciona de la siguiente manera: cuando se actualiza la página o se entra a la página donde está la funcion del cron jobs es cuando comienza el cooldown para este, esto implica que solamente ocurra cuando una persona entre al modulo donde está dicha función y solo para dicha persona se le actualizaran los Reclutados y el Status solo para las filas que tengan su nombre en la columna "Recruited_by", dicho esto, quisiera que se ejecute para todos los usuarios registrados, yo había pensado de está manera
<?
$AccountsQ=mssql_query("SELECT * FROM MEMB_STAT");//aqui selecciono todas las cuentas que por lo menos hayan ingresado al juego 1 vez
while($row=mssql_fetch_assoc($AccountsQ)){
$Accounts =$row['memb___id'];
}
$AccountID1Q=mssql_query("SELECT * FROM Recruit Where Recruited_by='".$Accounts."' and status='false'");
while($row=mssql_fetch_assoc($AccountID1Q)){
$AccountID1 =$row['AccountID'];
$status1 = $row['status'];
echo "".$AccountID1." status: ".$status1." ";
}
$AccountID2Q=mssql_query("SELECT TOP 1 * FROM Character Where AccountID='".$AccountID1."' ORDER BY Resets DESC");
while($row=mssql_fetch_assoc($AccountID2Q)){
$resets =$row['Resets'];
$AccountID2 = $row['AccountID'];
echo "".$resets."<br>";
}
if ($AccountID1 == $AccountID2 && $resets == 1) {
echo "se cumple todo ".$AccountID1." & ".$AccountID2."";
$suma_reclutados = $core_db->Execute("UPDATE Recruit SET reclutados=reclutados+1 WHERE AccountID='".$Accounts."'");
$suma_reclutados;
$change_status = $core_db->Execute("UPDATE Recruit SET status='true' WHERE AccountID='".$AccountID2."'");
$change_status;
}
?>
Por supuesto no me funciono lol, ahora eso es lo que busco :/ que se ejecute para todos, que no tenga que estar logeada el usuario para que se actualice, o ustedes creen que sea mejor que se quede solo para el usuario que este en el panel de usuario.