Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не срабатывает оператор UPDATE
 
 автор: melkij   (18.04.2006 в 13:06)   письмо автору
 
 

Люди помогите срочно с этим кодом....Не понимаю,вроде всё правильно.Но после победы он не обновляет $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;

   
 
 автор: XPraptor   (18.04.2006 в 14:36)   письмо автору
 
   для: melkij   (18.04.2006 в 13:06)
 

У вас в строке запроса на UPDATE, не ошибка: $param=$param+1, вы переменной присваиваете переменную, наверное вы хотели полю с именем парам присвоить переменную, уберите знак доллара у первого слова.

   
 
 автор: melkij   (18.04.2006 в 17:01)   письмо автору
 
   для: 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

   
 
 автор: cheops   (19.04.2006 в 16:43)   письмо автору
 
   для: melkij   (18.04.2006 в 13:06)
 

После каждого оператора лучше осуществлять проверку того, сработал он или нет
<?php
  $UPD 
mysql_query("UPDATE 'users' SET battle='0');
  if(!
$UPD) exit(mysql_error());
?>

так как ошибки MySQL не отображаются PHP-интерпретатором.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования