Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите, пожалуйста.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Выдаёт ошибку: Query failed : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use n
vmpl
Отправлено: 27 Июля, 2012 - 10:04:46
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.  
  4.  
  5.   $aBattleID = 0;
  6.   $aChar1 = "";
  7.   $aChar2 = "";
  8.   $aMove1 = 0;
  9.   $aMove2 = 0;
  10.   $aCurHealth1 = 0;
  11.   $aCurHealth2 = 0;
  12.   $aNickName = "";
  13.   $aOrder = 0;          // какие мы в строке боя - CHAR1 или CHAR2 ?
  14.   $aOpponentNick = "";  // наш оппонент
  15.   if (!empty($_GET['NickName'])){
  16.      $aNickName = $_GET['NickName'];
  17.   }
  18.   if (!empty($_POST['NickName'])){
  19.      $aNickName = $_POST['NickName'];
  20.   }
  21.   if ($aNickName <> ""){
  22.     $aWhatStat = "";
  23.     $aWhatSkill = "";
  24.     // Узнаем характеристики персонажа
  25.      
  26.                       include "config.php";
  27.      
  28.     $link = mysql_connect($mysql_host, $mysql_user, $mysql_password)
  29.             or die("Could not connect : " . mysql_error());
  30.             mysql_select_db($my_database) or die("Could not select database");
  31.  
  32.        // узнаем каким номером мы находимсяя в строке боя CHAR1 или CHAR2, кто наш противник
  33.        // и кто уже успел сделать ход ?
  34.        $query = "SELECT BAT_ID,CHAR1_NAME,CHAR2_NAME,M1,M2 FROM battle WHERE CHAR1_NAME='$aNickName' OR CHAR2_NAME='$aNickName'";
  35.        $result = mysql_query($query) or die("Query failed : " . mysql_error());
  36.        $aRow = mysql_fetch_array( $result);
  37.        $aBattleID = $aRow["BAT_ID"];
  38.        $aChar1 = $aRow["CHAR1_NAME"];
  39.        $aChar2 = $aRow["CHAR2_NAME"];
  40.        $aMove1 = $aRow["M1"];
  41.        $aMove2 = $aRow["M2"];
  42.        
  43.        // определим некоторые параметры char1 и char2
  44.        // 1
  45.        $query = "SELECT * FROM users WHERE Nick_Name='$aChar1'";
  46.        $result = mysql_query($query) or die("Query failed : " . mysql_error());
  47.        $aRow = mysql_fetch_array( $result);
  48.        $aStrength1 = $aRow["Character_Strength"];
  49.        $aEndurance1 = $aRow["Character_Endurance"];
  50.        $aCurHealth1 = $aRow["Character_CurHealth"];
  51.        // 2
  52.        $query = "SELECT * FROM users WHERE Nick_Name='$aChar2'";
  53.        $result = mysql_query($query) or die("Query failed : " . mysql_error());
  54.        $aRow = mysql_fetch_array( $result);
  55.        $aStrength2 = $aRow["Character_Strength"];
  56.        $aEndurance2 = $aRow["Character_Endurance"];
  57.        $aCurHealth2 = $aRow["Character_CurHealth"];
  58.  
  59.  
  60.        // Поединок закончен ?
  61.        if ( ($aCurHealth1 == 0) || ($aCurHealth2 == 0) ){
  62.           // Устанавливаем статус 3 (чтоб посмотреть результаты)
  63.           $query = "UPDATE users set Character_Status = 3 where Nick_Name='$aChar1' or Nick_Name='$aChar2'";
  64.           $result = mysql_query($query) or die("Query failed : " . mysql_error());
  65.           // установим статусы после боя, согласно сохранившегося здоровья
  66.           $query = "UPDATE battle set R1=$aCurHealth1,R2=$aCurHealth2 where CHAR1_NAME='$aChar1' or CHAR2_NAME='$aChar2'";
  67.           $result = mysql_query($query) or die("Query failed : " . mysql_error());
  68.  
  69.           print('<script>location.href="wait.php?NickName='.$aNickName.'&bat_id='.$aBattleID.'";</SCRIPT>');
  70.        }
  71.  
  72.  
  73.        if ( $aNickName == $aChar1 ){       //  Мы под первым номером
  74.  
  75.           $aShowEndurance1 = $aEndurance1;
  76.           $aShowHealth1    = $aCurHealth1;
  77.           $aShowEndurance2 = $aEndurance2;
  78.           $aShowHealth2    = $aCurHealth2;
  79.  
  80.           $aOrder = 1;
  81.           $aOpponentNick = $aChar2;
  82.           // Проверим походил ли соперник
  83.           if (($aMove1 == 1) & ($aMove2 == 0)){
  84.               print('<script>location.href="wait.php?NickName='.$aNickName.'&bat_id='.$aBattleID.'";</SCRIPT>');
  85.           }
  86.           if ($aMove1 == 0){
  87.              // мы сделали ход!
  88.              if (!empty($_POST['attack'])) {
  89.                 $aAttack = $_POST['attack'];
  90.                 $aDefend = $_POST['defend'];
  91.                 $query = "INSERT INTO battledetails(BAT_ID,CHAR_NAME,ATTACK,DEFEND) values ($aBattleID,'$aNickName',$aAttack,$aDefend)";
  92.                 $result = mysql_query($query) or die("Query failed : " . mysql_error());
  93.                 // установим флаг хода для 1 игрока
  94.                 $query = "UPDATE battle set M1=1 where CHAR1_NAME='$aNickName'";
  95.                 $result = mysql_query($query) or die("Query failed : " . mysql_error());
  96.                 print('<script>location.href="battle.php?NickName='.$aNickName.'";</SCRIPT>');
  97.                
  98.              }
  99.           }
  100.           if (($aMove1 == 1) & ($aMove2 == 1)){              // расчитываем damage для обоих персонажей
  101.               CalcDamage($aChar1,$aChar2,$aBattleID);        // считаем повреждения
  102.               print('<script>location.href="battle.php?NickName='.$aNickName.'";</SCRIPT>');
  103.           }
  104.  
  105.        } else {                           // Мы под вторым номером
  106.           $aShowEndurance1 = $aEndurance2;
  107.           $aShowHealth1    = $aCurHealth2;
  108.           $aShowEndurance2 = $aEndurance1;
  109.           $aShowHealth2    = $aCurHealth1;
  110.  
  111.           $aOrder = 2;
  112.           $aOpponentNick = $aChar1;
  113.           if (($aMove2 == 1) & ($aMove1 == 0)){
  114.               print('<script>location.href="wait.php?NickName='.$aNickName.'&bat_id='.$aBattleID.'";</SCRIPT>');
  115.           }
  116.           if ($aMove2 == 0){
  117.              // мы сделали ход!
  118.              if (!empty($_POST['attack'])) {
  119.                 $aAttack = $_POST['attack'];
  120.                 $aDefend = $_POST['defend'];
  121.                 $query = "INSERT INTO battledetails(BAT_ID,CHAR_NAME,ATTACK,DEFEND) values ($aBattleID,'$aNickName',$aAttack,$aDefend)";
  122.                 $result = mysql_query($query) or die("Query failed : " . mysql_error());
  123.                 // установим флаг хода для 1 игрока
  124.                 $query = "UPDATE battle set M2=1 where CHAR2_NAME='$aNickName'";
  125.                 $result = mysql_query($query) or die("Query failed : " . mysql_error());
  126.                 print('<script>location.href="battle.php?NickName='.$aNickName.'";</SCRIPT>');
  127.              }
  128.           }
  129.           if (($aMove1 == 1) & ($aMove2 == 1)){              // расчитываем damage для обоих персонажей
  130.               CalcDamage($aChar1,$aChar2,$aBattleID);        // считаем повреждения
  131.               print('<script>location.href="battle.php?NickName='.$aNickName.'";</SCRIPT>');
  132.           }
  133.        }
  134.     }
  135.    
  136. function CalcDamage($aChar1,$aChar2,$aBattleID){
  137. // обнуляем флаги ходов игроков
  138. $query = "UPDATE battle set M1=0, M2=0 where BAT_ID=$aBattleID";
  139. $result = mysql_query($query) or die("Query failed : " . mysql_error());
  140.  
  141. // параметры 1 игрока
  142. $query = "SELECT * FROM users WHERE Nick_Name='$aChar1'";
  143. $result = mysql_query($query) or die("Query failed : " . mysql_error());
  144. $aRow = mysql_fetch_array( $result);
  145. $aStrength1 = $aRow["Character_Strength"];
  146. $aCharLevel = $aRow["Character_Level"];
  147. $aCurHealth1 = $aRow["Character_CurHealth"];
  148. // параметры 2 игрока
  149. $query = "SELECT * FROM users WHERE Nick_Name='$aChar1'";
  150. $result = mysql_query($query) or die("Query failed : " . mysql_error());
  151. $aRow = mysql_fetch_array( $result);
  152. $aStrength2 = $aRow["Character_Strength"];
  153. $aCharLevel2 = $aRow["Character_Level"];
  154. $aCurHealth2 = $aRow["Character_CurHealth"];
  155.  
  156. // кто куда ударил и что блокировал
  157. // первый игрок
  158. $query = "select * from battledetails WHERE CHAR_NAME='$aChar1' order by batdet_id DESC limit 1";
  159. $result = mysql_query($query) or die("Query failed : " . mysql_error());
  160. $aRow = mysql_fetch_array( $result);
  161. $aAttack1 = $aRow["ATTACK"];
  162. $aDefend1 = $aRow["DEFEND"];
  163. // второй игрок
  164. $query = "select * from battledetails WHERE CHAR_NAME='$aChar2' order by batdet_id DESC limit 1";
  165. $result = mysql_query($query) or die("Query failed : " . mysql_error());
  166. $aRow = mysql_fetch_array( $result);
  167. $aAttack2 = $aRow["ATTACK"];
  168. $aDefend2 = $aRow["DEFEND"];
  169. // считаем повреждения, с учетом блоков
  170. // куда бил игрок 1 и что блокировал игрок 2 ?
  171.  
  172. if ( ! Blocked($aAttack1,$aDefend2) ){
  173. $aCurHealth2 = $aCurHealth2 - $aStrength1;
  174. $aCurHealth2 = $aCurHealth2 < 0 ? 0 : $aCurHealth2;
  175. $query = "UPDATE users set Character_CurHealth=$aCurHealth2 where Nick_Name='$aChar2'";
  176. $result = mysql_query($query) or die("Query failed : " . mysql_error());
  177. }
  178. // куда бил игрок 2 и что блокировал игрок 1 ?
  179. if ( ! Blocked($aAttack2,$aDefend1) ){
  180. $aCurHealth1 = $aCurHealth1 - $aStrength2;
  181. $aCurHealth1 = $aCurHealth1 < 0 ? 0 : $aCurHealth1;
  182. $query = "UPDATE users set Character_CurHealth=$aCurHealth1 where Nick_Name='$aChar1'";
  183. $result = mysql_query($query) or die("Query failed : " . mysql_error());
  184. }
  185. }
  186.    
  187. function Blocked($a,$d){
  188. $def = array(1=>'12',2=>'23',3=>'34',4=>'41');
  189. if( strpos($def[$d],$a) === false ){
  190. $retv = false;
  191. }else{
  192. $retv = true;
  193. }
  194. return ($retv);
  195. }
  196.    
  197. ?>


Скажите что делать.
(Добавление)
Выдаёт ошибку: Query failed : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'R2= where CHAR1_NAME='0' or CHAR2_NAME='0'' at line 1
 
 Top
caballero
Отправлено: 27 Июля, 2012 - 10:14:48
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




А обязательно надо кидать метр кода? Строку с запросом кинуть нельзя?
скорее всего пустая переменная которую в строку запроса пишешь.

(Отредактировано автором: 27 Июля, 2012 - 10:15:10)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
vmpl
Отправлено: 27 Июля, 2012 - 10:22:56
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Да извеняюсь, просто я не знаю где ошибка.
 
 Top
Toxa
Отправлено: 27 Июля, 2012 - 11:17:07
Post Id



Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2008  


Помог: 8 раз(а)

[+]


в вашем примере 66 строка
CODE (htmlphp):
скопировать код в буфер обмена
  1. $query = "UPDATE battle set R1='$aCurHealth1',R2='$aCurHealth2' where CHAR1_NAME='$aChar1' or CHAR2_NAME='$aChar2'";


-----
Удобный сервис для хранения файлов
 
 Top
vmpl
Отправлено: 27 Июля, 2012 - 11:47:44
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




А как исправить?
 
 Top
Toxa
Отправлено: 27 Июля, 2012 - 12:04:38
Post Id



Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2008  


Помог: 8 раз(а)

[+]


так я уже исправленный вариант написал, там кавычки пропущены, смотрите внимательнее


-----
Удобный сервис для хранения файлов
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Если скрипт не работает »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB