Olá, então. Eu estou a +/- uns 2 dias tentando desvendar esse erro que não consigo mais entender o porque não funciona... Já fiz todo tipo de gambiarra possível, tentei switch, tentei elseif, if, else if e simplismente não funciona.
O que era pra fazer? Bem, era para ele checar o player_level e o player_zen, e ai ele rodar o if, ou, caso não tiver a quantidade necessária de player_zen, pular para o else, que nesse caso, é redirecionado para uma outra página.
Qual o erro? Então, ai que ta, eu não sei... tipo, se eu colocar apenas 1 IF e o Else, ele funciona perfeitamente. Porém, se eu colocar um outro if ou um else if, ele não funciona, ele começa a contar o zen do 2º if e quando o zen acaba, ele continua rodando... Coloquei um limitador $player_zen já para ver oq acontece, mais ele meio que ignora.
/////////////////////RESTORE HP/MP//////////////////////////////////
if($_GET['action'] == 'restore')
{
$query = "SELECT zen FROM users WHERE id='$user_id'";
$result = mysql_query($query,$conn);
if(!mysql_num_rows($result))
exit('mysql_error');
$dbarray = mysql_fetch_array($result);
$player_money = $dbarray[0];
include('function.common.php');
include('player_stats.php');
include('calculate_stats.php');
if (($player_level <= 10) && ($player_zen >= 50))
{
$query = "UPDATE users set zen=zen-50 WHERE id='$user_id'";
mysql_query($query, $conn);
$query = "UPDATE characters set hp_cur='$player_hp_final', mp_cur='$player_mp_final' WHERE id='$char_id'";
if(!mysql_query($query, $conn))
exit('market_error');
header("Location: quest.php?restore=ok");
exit();
}
if (($player_level > 11) || ($player_level <= 20) && ($player_zen >= 100))
{
$query = "UPDATE users set zen=zen-100 WHERE id='$user_id'";
mysql_query($query, $conn);
$query = "UPDATE characters set hp_cur='$player_hp_final', mp_cur='$player_mp_final' WHERE id='$char_id'";
if(!mysql_query($query, $conn))
exit('market_error');
header("Location: quest.php?restore=ok");
exit();
}
if (($player_level > 21) || ($player_level <= 50) && ($player_zen >= 500))
{
$query = "UPDATE users set zen=zen-500 WHERE id='$user_id'";
mysql_query($query, $conn);
$query = "UPDATE characters set hp_cur='$player_hp_final', mp_cur='$player_mp_final' WHERE id='$char_id'";
if(!mysql_query($query, $conn))
exit('market_error');
header("Location: quest.php?restore=ok");
exit();
}
if (($player_level > 51) || ($player_level <= 100) && ($player_zen >= 1000))
{
$query = "UPDATE users set zen=zen-1000 WHERE id='$user_id'";
mysql_query($query, $conn);
$query = "UPDATE characters set hp_cur='$player_hp_final', mp_cur='$player_mp_final' WHERE id='$char_id'";
if(!mysql_query($query, $conn))
exit('market_error');
header("Location: quest.php?restore=ok");
exit();
}
if (($player_level > 101) || ($player_level <= 250) && ($player_zen >= 5000))
{
$query = "UPDATE users set zen=zen-5000 WHERE id='$user_id'";
mysql_query($query, $conn);
$query = "UPDATE characters set hp_cur='$player_hp_final', mp_cur='$player_mp_final' WHERE id='$char_id'";
if(!mysql_query($query, $conn))
exit('market_error');
header("Location: quest.php?restore=ok");
exit();
}
if (($player_level > 251) || ($player_level <= 300) && ($player_zen >= 7500))
{
$query = "UPDATE users set zen=zen-7500 WHERE id='$user_id'";
mysql_query($query, $conn);
$query = "UPDATE characters set hp_cur='$player_hp_final', mp_cur='$player_mp_final' WHERE id='$char_id'";
if(!mysql_query($query, $conn))
exit('market_error');
header("Location: quest.php?restore=ok");
exit();
}
if (($player_level > 301) && ($player_zen >= 10000))
{
$query = "UPDATE users set zen=zen-10000 WHERE id='$user_id'";
mysql_query($query, $conn);
$query = "UPDATE characters set hp_cur='$player_hp_final', mp_cur='$player_mp_final' WHERE id='$char_id'";
if(!mysql_query($query, $conn))
exit('market_error');
header("Location: quest.php?restore=ok");
exit();
} else {
header("Location: quest1.php");
}
}
/////////////////////RESTORE HP/MP END////////////////////////////
Pergunta
subyth 38
Olá, então. Eu estou a +/- uns 2 dias tentando desvendar esse erro que não consigo mais entender o porque não funciona... Já fiz todo tipo de gambiarra possível, tentei switch, tentei elseif, if, else if e simplismente não funciona.
O que era pra fazer?
Bem, era para ele checar o player_level e o player_zen, e ai ele rodar o if, ou, caso não tiver a quantidade necessária de player_zen, pular para o else, que nesse caso, é redirecionado para uma outra página.
Qual o erro?
Então, ai que ta, eu não sei... tipo, se eu colocar apenas 1 IF e o Else, ele funciona perfeitamente. Porém, se eu colocar um outro if ou um else if, ele não funciona, ele começa a contar o zen do 2º if e quando o zen acaba, ele continua rodando... Coloquei um limitador $player_zen já para ver oq acontece, mais ele meio que ignora.
Qualquer coisa, eu passo a página completa.
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados