21

Re: Непослушний код )

Я би радив автору, для початку, підбирати логічні назви змінних.
+ без транзакцій тут не обійтись.

Скажу по секрету тільки цссс.
Ми всі це уже радили писати більш зрозуміліший код, але ніяк не виходить у автора ця фішка ))  ;)

22 Востаннє редагувалося ozimok (22.10.2013 13:50:24)

Re: Непослушний код )

Якось я читав одну розумну книгу по програмуванню у якій автор писав наступне:

"Пиши код завжди так,  як будьто його буде підтримувати маньяк який знає де ти живеш"

23 Востаннє редагувалося Faraon (24.10.2013 17:22:20)

Re: Непослушний код )

Привіт, ось ще один випадок коли мене не слухає код!
:

echo $auser1_id; // виводить тест
echo $auser2_id; //  і тут теж виводить тест
echo $aNickName; // а тут виводить Faraon

if ( $auser2_id or $auser1_id == $aNickName ) {
echo "чому???? мене не слухається код?";
 } 
 else {
echo "ура... мене слухається код xD";
}

на екран виводить "чому???? мене не слухається код?"

Re: Непослушний код )

Faraon написав:

Привіт, ось ще один випадок коли мене не слухає код!
:

Прихований текст
echo $auser1_id; // виводить тест
echo $auser2_id; //  і тут теж виводить тест
echo $aNickName; // а тут виводить Faraon

if ( $auser2_id or $auser1_id == $aNickName ) {
echo "чому???? мене не слухається код?";
 } 
 else {
echo "ура... мене слухається код xD";
}

на екран виводить "чому???? мене не слухається код?"

може треба зробити так:

$auser2_id == $aNickName or $auser1_id == $aNickName

?

Подякували: Faraon1

25 Востаннє редагувалося Faraon (24.10.2013 17:40:03)

Re: Непослушний код )

Hanter написав:
Faraon написав:

Привіт, ось ще один випадок коли мене не слухає код!
:

Прихований текст
echo $auser1_id; // виводить тест
echo $auser2_id; //  і тут теж виводить тест
echo $aNickName; // а тут виводить Faraon

if ( $auser2_id or $auser1_id == $aNickName ) {
echo "чому???? мене не слухається код?";
 } 
 else {
echo "ура... мене слухається код xD";
}

на екран виводить "чому???? мене не слухається код?"

може треба зробити так:

$auser2_id == $aNickName or $auser1_id == $aNickName

?

:[ так, ви праві!

26

Re: Непослушний код )

Bartash написав:
Faraon написав:

Оновлення бази НЕ повернеться автоматично до скрипта

Ви маєте наувазі що для оновлених полів в базі потрібно робити повторно запит?

А як ще клієнт дізнається про зміни на базі у сервера?..

м... не знаю як там клієнт буде дізнаватися про зміни на базі у сервера но коли я замінив

$abattlgo and $abattlgo2 == "go"

на

$abattlgo == "go" and $abattlgo2 == "go"

у мене все запрацювало!
ось код битви між гравцями: (може комусь він допоможе)

<?php
session_start(); 

include_once ("cone.php");   
mysql_query("SET NAMES 'cp1251' COLLATE 'cp1251_general_ci'");   
 if ($aNickName == $auser2_id) { $a2NickName = $auser1_id; } else { $a2NickName = $auser2_id; $aNickName = $auser1_id;}

$aNickName = $_SESSION['login'];   

$_GET['looc'] = $aRow["location"];

$qy = "SELECT * FROM battle WHERE status='1'";  // виносимо все що є в цій таблиці з статусом 1
$ult = mysql_query($qy) or die("Query failed : " . mysql_error());  
$aYew = mysql_fetch_array( $ult);  
$abattle_id = $aYew["battle_id"]; // индикатор боя
$auser1_id = $aYew["user1_id"];  // нік одного гравця
$auser2_id = $aYew["user2_id"]; // нік другого гравця
$abattlgo = $aYew["battlgo"]; // зробив хід гравець один ???
$abattlgo2 = $aYew["battlgo2"];  // зробив хід гравець два ???
$astatus = $aYew["status"];  // статус боя. (1- бій все ще іде) (2-бій закінчений)

$query = "SELECT * FROM users WHERE login='$aNickName'";  
$result = mysql_query($query) or die("Query failed : " . mysql_error());  
$aRow = mysql_fetch_array( $result);  
$id_user = $aRow["id"]; // виносимо id игрока  
$alogin = $aRow["login"]; // виносимо login игрока  
$loc_user = $aRow["location"]; // остання локація на якій був персонаж
$aStrength = $aRow["Character_Strength"]; //сила персонажа
$adef = $aRow["def"]; //защита персонажа
$aspeed = $aRow["speed"]; //скорость персонажа
$aEndurance = $aRow["Character_Endurance"]; //Выносливость
$aAccuracy = $aRow["Character_Accuracy"]; //Точность перса (влияет на крит.удар)
$aDexterity = $aRow["Character_Dexterity"]; //Ловкость перса (влияет на уворот)
$aCharLevel = $aRow["Character_Level"]; // уровень
$aMoney = $aRow["Character_Money"]; //гроші
$aEuro = $aRow["Character_Euro"];  // золоті монети
$aExperience = $aRow["Character_Experience"]; //опит
$ateder = $aRow["Character_teder"]; 
$ano_teder = $aRow["Character_no_teder"]; //програші
$ayes_teder = $aRow["Character_yes_teder"]; //виграші
$asex = $aRow["sex"]; //стать
$ainf = $aRow["inf"]; //информация
$aEV = $aRow["EV"]; //очки EV
$aintelekt = $aRow["intelekt"]; //інтелект персонажа
$aHP = $aRow["HP"]; // рівень життя
$amaxHP = $aRow["maxHP"]; // Максимальний рівень життя
$aminHP = $aRow["minHP"]; //Мінімальний рівень життя


$qry = "SELECT * FROM users WHERE login='$a2NickName'";  
$res = mysql_query($qry) or die("Query failed : " . mysql_error());  
$aRowi = mysql_fetch_array( $res);  
$id_use2r = $aRowi["id"]; // виносимо id игрока  
$a2login = $aRowi["login"]; // виносимо login игрока  
$loc_user2 = $aRowi["location"]; // остання локація на якій був персонаж
$a2Strength = $aRowi["Character_Strength"]; //сила персонажа
$a2def = $aRowi["def"]; //защита персонажа
$a2speed = $aRowi["speed"]; //скорость персонажа
$a2Endurance = $aRowi["Character_Endurance"]; //Выносливость
$a2Accuracy = $aRowi["Character_Accuracy"]; //Точность перса
$a2Dexterity = $aRowi["Character_Dexterity"]; //Ловкость перса
$a2CharLevel = $aRowi["Character_Level"]; // уровень
$a2Money = $aRowi["Character_Money"]; //гроші
$a2Euro = $aRowi["Character_Euro"];  // золоті монети
$a2Experience = $aRowi["Character_Experience"]; //опыт
$a2teder = $aRowi["Character_teder"]; //ничьих
$a2no_teder = $aRowi["Character_no_teder"]; // програші
$a2yes_teder = $aRowi["Character_yes_teder"]; //виграші
$a2sex = $aRowi["sex"]; //стать
$a2inf = $aRowi["inf"]; //информация
$a2EV = $aRowi["EV"]; //очки EV
$a2intelekt = $aRowi["intelekt"]; //інтелект персонажа
$a2HP = $aRowi["HP"]; // Уровень жизни
$a2maxHP = $aRowi["maxHP"]; // Максимальний уровень жизни
$a2minHP = $aRowi["minHP"]; //Минимальний уровень жизни

      
      
      if(isset($_GET[atak])){  
   $myql = mysql_query("UPDATE battle SET battlgo='go' where user1_id='$aNickName' ") or die("Савсэм плохо: " . mysql_error()); 
   $myql2 = mysql_query("UPDATE battle SET battlgo2='go' where user2_id='$aNickName' ") or die("Савсэм плохо: " . mysql_error()); 

   }  

   
      if ($abattlgo == "go" and $abattlgo2 == "go" )  { // перевіряємо якщо два гравця зробили хід то віднімаємо від життя гравця силу противника

$sqt = mysql_query("UPDATE users SET `HP`=`HP` - ".$a2Strength." WHERE login='$aNickName' ")  or die("Савсэм плохо: " . mysql_error());
$sq3t = mysql_query("UPDATE users SET `HP`=`HP` - ".$aStrength." WHERE login='$a2NickName' ")  or die("Савсэм плохо: " . mysql_error());
      
      $queryUPDATEbattlgo = mysql_query("UPDATE battle SET battlgo='no' WHERE user1_id='$aNickName' ")  or die("Савсэм плохо: " . mysql_error());
      $queryUPDATEbattlgo2 = mysql_query("UPDATE battle SET battlgo2='no' WHERE user2_id='$a2NickName' ")  or die("Савсэм плохо: " . mysql_error());

}

      
echo '<center><table border=2 bgcolor=#CD853F><tr><td>
<table border=2 bgcolor=#8B7E66 ><tr><td>
  
'. $aNickName.'-'.$aCharLevel.' lvl</td>
</tr>
    <tr><td><IMG SRC="../images/herz.gif" WIDTH=10 HEIGHT=10 ALT="Уровень жизни"> Уровень жизни: '.$aHP.'/'.$amaxHP .'</td></tr>
<tr><td><img src="../images/avatar/'. $asex.'.png">
';

echo "<br><HR>Сила:".$aStrength."<br>";
echo "Защита:".$adef."<br>"; 
echo "Скорость:".$aspeed."<br>"; 
echo "Точность:".$aAccuracy."<br>"; 
echo "Выносливость:".$aEndurance."<br>"; 
echo "Ловкость:".$aDexterity."<HR><br></td></tr></table>"; 

echo "</td><td ><input type='submit'  onclick=location='mapa.php?atak' value='Атака'></td><td>";


echo '
<table border=2 bgcolor=#8B7E66 ><tr><td>
  
'. $a2NickName.'-'.$a2CharLevel.' lvl</td>
</tr>
    <tr><td><IMG SRC="../images/herz.gif" WIDTH=10 HEIGHT=10 ALT="Уровень жизни"> Уровень жизни: '.$a2HP.'/'.$a2maxHP .'</td></tr>
<tr><td><img src="../images/avatar/'. $asex.'.png">
';

echo "<br>"."<HR>Сила:".$a2Strength."<br>";
echo "Защита:".$a2def."<br>"; 
echo "Скорость:".$a2speed."<br>"; 
echo "Точность:".$a2Accuracy."<br>"; 
echo "Выносливость:".$a2Endurance."<br>"; 
echo "Ловкость:".$a2Dexterity."<HR><br></td></tr></table> ";
echo "</td></tr></table></center>";

    
  ?>

і база:

CREATE TABLE `battle` (
  `battle_id` int(11) NOT NULL AUTO_INCREMENT,
  `user1_id` varchar(11) NOT NULL,
  `user2_id` varchar(11) NOT NULL,
  `battlgo` varchar(11) NOT NULL DEFAULT 'no',
  `battlgo2` varchar(11) NOT NULL DEFAULT 'no',
  `status` varchar(11) NOT NULL DEFAULT '1',
  PRIMARY KEY (`battle_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=cp1251;

27

Re: Непослушний код )

м... незовсім працює на 100% скоріш за все на 50% .

28

Re: Непослушний код )

Faraon написав:

м... незовсім працює на 100% скоріш за все на 50% .

Логічно ж, правда?)
Faraon написав:

м... не знаю як там клієнт буде дізнаватися про зміни на базі у сервера но

29 Востаннє редагувалося Faraon (25.10.2013 13:11:29)

Re: Непослушний код )

Bartash написав:
Faraon написав:

м... незовсім працює на 100% скоріш за все на 50% .

Логічно ж, правда?)
Faraon написав:

м... не знаю як там клієнт буде дізнаватися про зміни на базі у сервера но

Ні... це зовсім не через це!
Обновлення бази працює добре! Проблема ось у чому...
наприклад є такий код:

 if(isset($_GET['go'])) {
echo "на кнопку натиснули";
} else ()
<a href="index.php?go">кнопка</a>

коли я нажимаю на силку то нічого не відбувається, але якщо я перезапущу сторінку то тоді вже відображається текст "на кнопку натиснули"
Ось в цьому і полягає невеличка проблема! Як це виправити?

30

Re: Непослушний код )

Ось в цьому і полягає невеличка проблема! Як це виправити?

Почитайте книжку є безмежна кількість уроків.
У мене склалось враження що ви просто копіпастите код з гугла сюди і з форуму в свій проект.
Логіки 0.

Вивчіть базовий курс ;)

Подякували: miroslav.chandler1

31

Re: Непослушний код )

У мене склалось враження що ви просто копіпастите код з гугла сюди і з форуму в свій проект.
Логіки 0.

Ні, код я пишу сам!
А ось нащот логіки то ви праві, я це сам замічав. Половина тем який я створив можна було вирішити без проблем тільки потрібно включити логіку

32

Re: Непослушний код )

Половина тем який я створив можна було вирішити без проблем тільки потрібно включити логіку

Рекомендую вам включити її і тоді буде цікавіше вам допомагати ;)

Подякували: Chemist-i, Faraon, Cyan4