|
|
|
| Люди помогите срочно с этим кодом....Не понимаю,вроде всё правильно.Но после победы он не обновляет $UPD = mysql_query("UPDATE 'users' SET battle='0' вот это.
Вот полный код
function battleOver( $bid ){
$BATTLE_QUERY = mysql_query("SELECT * FROM 'battles' WHERE id = '$bid'");
$BATTLE = mysql_fetch_array( $BATTLE_QUERY );
$TEAM1_QUERY = mysql_query("SELECT * FROM 'team1' WHERE creator_id = '".$BATTLE["creator_id"]."'");
$TEAM2_QUERY = mysql_query("SELECT * FROM 'team2' WHERE creator_id = '".$BATTLE["creator_id"]."'");
$ClearZayavka = mysql_query("DELETE FROM 'zayavka' WHERE creator = '".$BATTLE["creator_id"]."'");
while($TEAM1 = mysql_fetch_array($TEAM1_QUERY)){
if($BATTLE["win"] == 1){$win = 1;$param='win';}else if($BATTLE["win"]==2){$win = 0;$param='lose';}
else if($BATTLE["win"] == 3){$win = 2;$param='win';}
$player = $TEAM1["player"];
$hit = $TEAM1["hitted"];
$ip = $TEAM1["ip"];
$give_exp = calcExp ( $player, $bid, 'team1' );
gainNavik ( $player, $win );
if($win == 0 || $win == 2){$give_exp = floor($give_exp/10);}
$UPD = mysql_query("UPDATE 'users' SET battle='0',turn=0,exp=exp+$give_exp,$param=$param+1,battle_opponent='',battle_team='' WHERE login = '$player'");
if($win == 1){
say($player,"Бой окончен! Вы победили! Всего вами нанесено: $hit HP, получено опыта: $give_exp.",$player);
}
else if($win == 0){
say($player,"Бой окончен! Вы проиграли! Всего вами нанесено: $hit HP, получено опыта: $give_exp.",$player);
}
else if($win == 2){
say($player,"Бой окончен! Ничья! Всего вами нанесено: $hit HP, получено опыта: $give_exp.",$player);
}
$HIST = mysql_query("INSERT INTO 'team1_history'(player,ip,hitted,battle_id) VALUES('$player','$ip','$hit','$bid')");
$HIT_TEMP_CLR = mysql_query("DELETE FROM 'hit_session' WHERE player1 = '$player' AND bid = '$bid'");
$PLAYER_QUERY = mysql_query("SELECT * FROM 'users' WHERE login='$player'");
$PLAYER = mysql_fetch_array($PLAYER_QUERY);
setHP( $player, $PLAYER["hp"], $PLAYER["hp_all"] );
setMN( $player, $PLAYER["mana"], $PLAYER["mana_all"] );
}
while($TEAM2 = mysql_fetch_array($TEAM2_QUERY)){
if($BATTLE["win"] == 2){$win = 1;$param='win';}else if($BATTLE["win"]==1){$win = 0;$param='lose';}
else if($BATTLE["win"] == 3){$win = 2;$param='win';}
$player = $TEAM2["player"];
$hit = $TEAM2["hitted"];
$ip = $TEAM2["ip"];
$give_exp = calcExp ( $player, $bid, 'team2' );
gainNavik ( $player, $win );
if($win == 0){$give_exp = floor($give_exp/10);}
$UPD = mysql_query("UPDATE 'users' SET battle='0',turn=0,exp=exp+$give_exp,$param=$param+1,battle_opponent='',battle_team='' WHERE login = '$player'");
if($win == 1 || $win == 2){
say($player,"Бой окончен! Вы победили! Всего вами нанесено: $hit HP, получено опыта: $give_exp.",$player);
}
else if($win == 0){
say($player,"Бой окончен! Вы проиграли! Всего вами нанесено: $hit HP, получено опыта: $give_exp.",$player);
}
else if($win == 2){
say($player,"Бой окончен! Ничья! Всего вами нанесено: $hit HP, получено опыта: $give_exp.",$player);
}
$HIST = mysql_query("INSERT INTO 'team2_history'(player,ip,hitted,battle_id) VALUES('$player','$ip','$hit','$bid')");
$HIT_TEMP_CLR = mysql_query("DELETE FROM 'hit_session' WHERE player2 = '$player' AND bid = '$bid'");
$PLAYER_QUERY = mysql_query("SELECT * FROM 'users' WHERE login='$player'");
$PLAYER = mysql_fetch_array($PLAYER_QUERY);
setHP( $player, $PLAYER["hp"], $PLAYER["hp_all"] );
setMN( $player, $PLAYER["mana"], $PLAYER["mana_all"] );
}
$TEAM1_CLR = mysql_query("DELETE FROM 'team1' WHERE creator_id = '".$BATTLE["creator_id"]."'");
$TEAM2_CLR = mysql_query("DELETE FROM 'team2' WHERE creator_id = '".$BATTLE["creator_id"]."'");
$KillBots = mysql_query("DELETE FROM 'bot_temp' WHERE battle_id='$bid'");
$_SESSION["zayavka_c_m"] = 0;
$_SESSION["zayavka_c_o"] = 0;
$_SESSION["battle_ref"] = 0;
|
| |
|
|
|
|
|
|
|
для: melkij
(18.04.2006 в 13:06)
| | У вас в строке запроса на UPDATE, не ошибка: $param=$param+1, вы переменной присваиваете переменную, наверное вы хотели полю с именем парам присвоить переменную, уберите знак доллара у первого слова. | |
|
|
|
|
|
|
|
для: XPraptor
(18.04.2006 в 14:36)
| | Не помогло.....Не понимаю я что такое.Может тут чего не так?
include "conf.cfg";
include "functions.php";
$data = mysql_connect($base_name, $base_user, $base_pass);
mysql_select_db($db_name,$data);
$db_SQL = mysql_query("SELECT * FROM 'users' WHERE login='$login'");
$db = mysql_fetch_array($db_SQL);
$creator = $db["battle_pos"];
$opponent = $db["battle_opponent"];
$bid = $db["battle"];
$team = $db["battle_team"];
$ZAYAVKA_SQL = mysql_query("SELECT * FROM 'zayavka' WHERE creator = '$creator'");
$BATTLE_SQL = mysql_query("SELECT * FROM 'battles' WHERE id = '$bid'");
$ZAYAVKA = mysql_fetch_array($ZAYAVKA_SQL);
$BATTLE = mysql_fetch_array($BATTLE_SQL);
$status = $BATTLE["status"];
$b = 1;
$winer = 0;
$loser = 0;
if($act == "exit"){
if($db["battle"]!=0){
$S = mysql_query("SELECT * FROM 'battles' WHERE id='$bid' AND done = '0'");
$D = mysql_fetch_array($S);
if($D["status"]=='finished'){
battleOver( $bid );
}
$DONE_SQL = mysql_query("UPDATE 'battles' SET done = 1 WHERE id=$bid");
print "<script>location.href='battle.php';</script>";
die();
}
|
То что в первом посте взято из functions.php | |
|
|
|
|
|
|
|
для: melkij
(18.04.2006 в 13:06)
| | После каждого оператора лучше осуществлять проверку того, сработал он или нет
<?php
$UPD = mysql_query("UPDATE 'users' SET battle='0');
if(!$UPD) exit(mysql_error());
?>
|
так как ошибки MySQL не отображаются PHP-интерпретатором. | |
|
|
|
|