Re: Непослушний код )
Я би радив автору, для початку, підбирати логічні назви змінних.
+ без транзакцій тут не обійтись.
Скажу по секрету тільки цссс.
Ми всі це уже радили писати більш зрозуміліший код, але ніяк не виходить у автора ця фішка ))
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → PHP → Непослушний код )
Для відправлення відповіді ви повинні увійти або зареєструватися
Я би радив автору, для початку, підбирати логічні назви змінних.
+ без транзакцій тут не обійтись.
Скажу по секрету тільки цссс.
Ми всі це уже радили писати більш зрозуміліший код, але ніяк не виходить у автора ця фішка ))
Якось я читав одну розумну книгу по програмуванню у якій автор писав наступне:
"Пиши код завжди так, як будьто його буде підтримувати маньяк який знає де ти живеш"
Привіт, ось ще один випадок коли мене не слухає код!
:
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
?
Faraon написав:Привіт, ось ще один випадок коли мене не слухає код!
:▼Прихований текстна екран виводить "чому???? мене не слухається код?"
може треба зробити так:
$auser2_id == $aNickName or $auser1_id == $aNickName
?
так, ви праві!
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;
м... незовсім працює на 100% скоріш за все на 50% .
Faraon написав:м... незовсім працює на 100% скоріш за все на 50% .
▼Логічно ж, правда?)
Ні... це зовсім не через це!
Обновлення бази працює добре! Проблема ось у чому...
наприклад є такий код:
if(isset($_GET['go'])) {
echo "на кнопку натиснули";
} else ()
<a href="index.php?go">кнопка</a>
коли я нажимаю на силку то нічого не відбувається, але якщо я перезапущу сторінку то тоді вже відображається текст "на кнопку натиснули"
Ось в цьому і полягає невеличка проблема! Як це виправити?
Ось в цьому і полягає невеличка проблема! Як це виправити?
Почитайте книжку є безмежна кількість уроків.
У мене склалось враження що ви просто копіпастите код з гугла сюди і з форуму в свій проект.
Логіки 0.
Вивчіть базовий курс
У мене склалось враження що ви просто копіпастите код з гугла сюди і з форуму в свій проект.
Логіки 0.
Ні, код я пишу сам!
А ось нащот логіки то ви праві, я це сам замічав. Половина тем який я створив можна було вирішити без проблем тільки потрібно включити логіку
Для відправлення відповіді ви повинні увійти або зареєструватися