koala написав:Єдиний рядок, що створює хоч якесь відчутне навантаження в цьому коді - це
Втім, якщо в таблиці users менше кількох тисяч рядків або є індекс за полем login, то і це не дуже навантажує. Шукайте щось, що виконується мільйони разів на секунду.
Мільйони разів??? Я не думаю що в мене щось таке є.
Запит відправляється до бази тоді коли є загрузка сторінки...
Єдина сторінка яка автоматично перезагружається що 10 секунд це mapa.php:
<?php
session_start();
include_once ("cone.php");
//ливимся чи є логін в сесії якшо ні викидуєм
if (!empty($_SESSION['login'])){}else{header("Location: ../index.php");} //Дивимося логін в сесії, якщо немає то перенаправляємо
$_GET['NickName'] = $_SESSION['login'];
$aNickName = $_GET['NickName'];
//виводимо характеристику гравця
$query = "SELECT * FROM users WHERE login='$aNickName'";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
$aRow = mysql_fetch_array( $result);
$alogin = $aRow["login"]; // виносимо login гравця
$loc_user = $aRow["location"]; // остання локація на якій був персонаж
$aStrength = $aRow["Character_Strength"]; //сила персонажа
$adef = $aRow["def"];
$aspeed = $aRow["speed"];
$aExperience = $aRow["Character_Experience"]; //опыт
$aEndurance = $aRow["Character_Endurance"]; //Выносливость
$aAccuracy = $aRow["Character_Accuracy"]; //Точность перса
$aDexterity = $aRow["Character_Dexterity"]; //Ловкость перса
$aCharLevel = $aRow["Character_Level"]; // рівень гравця
$aMoney = $aRow["Character_Money"]; //гроші
$aEuro = $aRow["Character_Euro"]; // золоті монети
$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"]; //Мінімальний рівень життя
$battlezayavka = $aRow ["battlezayavka"]; // дивимося чи відправляли гравцю заявку на бій?!
$aloveHP = $aRow["loveHP"]; //знаки возвращениа в бою
$abotgo = $aRow["botgo"]; //готовий гравець к битві з ботом який нападає? так - боту буде нападати, ні - бот не буде нападати
$ban = $aRow["ban"]; //игрок забанен или нет?
$id = $aRow["id"]; //игрок забанен или нет?
$moderpanel = $aRow["moderpanel"]; //какой статус в игре? модератор админ или крестианин
// функціонал переходу по локаціям (збереження останього переміщеня гравця)
$_GET["looc"] = $aRow["location"];
if(isset($_GET["loc"])){
$loc_user = $_GET["loc"];
$query = mysql_query("UPDATE users SET location=$loc_user WHERE id_user=$aNickName ");
$sqt = mysql_query("UPDATE users SET location = '".mysql_real_escape_string($_GET['loc'])."' WHERE login='$aNickName' ");
}
$quer= "SELECT * FROM location WHERE id=$loc_user";
$sql = mysql_query($quer);
$row = mysql_fetch_array($sql);
$id_loc = $row['id'];// виносимо id 1 локации
$code = $row['code'];
$locimg = $row['img'];
//якщо гравець подав заявку на напад на іншого гравця то дивимося чи це можливо
if (isset($_POST['napast'])) {
$a2NickName = $_POST['napast'];
if ($a2NickName == $aNickName) {echo "<br><rb><b><center><hr>Нельзя напасть на самого себя.<hr></center></b>";} else {
$query = "SELECT * FROM users WHERE login='$a2NickName'";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
$aRow = mysql_fetch_array( $result);
$loc_user = $aRow["location"]; // остання локація на якій був персонаж
$useronline = $aRow["online"];// дивимося чи гравець онлайн
//дивимося чи гравець онлайн якщо так то записуєм в базу що на него напали та переадресовуємо на поле битви
if ($useronline == "online"){
$query = mysql_query ("INSERT INTO battle(`user1_id`,`user2_id`) VALUES ('$aNickName','$a2NickName')") or die (mysql_error());
}else { echo "<br><rb><b><center><hr>Игрока нет в сети!!!<hr></center></b>";}
}
}
//записуєм в базу що гравець готовий до нападу бота
if (!empty($_POST['napastbot'])){
$anapastbot = $_POST['napastbot'];
$queryUPDATEusers = mysql_query("UPDATE users SET botgo=$anapastbot WHERE login='$aNickName' ") or die("Савсэм плохо: " . mysql_error());
}
//виносимо дані про квести гравця
$queryqest = "SELECT * FROM qest WHERE login='$aNickName'";
$resultqest = mysql_query($queryqest) or die("Query failed : " . mysql_error());
$aRowqest = mysql_fetch_array( $resultqest);
$anameqest = $aRowqest["name"];
$aloginqest = $aRowqest["login"];
$aitemqest = $aRowqest["item"];
$aitem2qest = $aRowqest["item2"];
$aitem3qest = $aRowqest["item3"];
$aitem4qest = $aRowqest["item4"];
$aitem5qest = $aRowqest["item5"];
$aitem6qest = $aRowqest["item6"];
$astatusqes = $aRowqest["status"];
//дивимося всю інформацію про бої в яких знаходиться в цей момент гравець
$query1 = "SELECT * FROM battle WHERE status='1'"; // виносимо все що є в цій таблиці з статусом 1
$ult = mysql_query($query1) 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-бій закінчений)
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html style="margin: 0pt; padding: 0pt; height: 100%;" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><<<Игровой мир>>></title>
<link rel="stylesheet" href="../css/mapa.css" type="text/css">
<link rel="icon" type="image/png" href="../images/136482.png">
<script type="text/javascript">
setTimeout(function(){$('.box').fadeOut('fast')},5000); //1500 = 1.5 секунд
</script>
</head>
<body style="margin: 0pt; padding: 0pt; height: 100%;">
<?php
// нападение бота за це відповідає battleBOT.php
if ($battlezayavka == "bot" ){
include_once ("battleBOT.php"); // там знаходиться функціонал битви
} else {
// якщо в таблиці battle в полях user1_id або user2_id знаходиться логін гравця то направляємо його на бій
if ( $auser2_id == $aNickName or $auser1_id == $aNickName ) {
include_once ("battle.php"); // там знаходиться функціонал битви
} else {
if ($abotgo == "2") { // якщо гравець готовий до нападу бота (1- не готовий! 2-готовий)то записуєм в базу що гравецб знах. в бою
$chance=rand(1,7);
if($chance==3)
{
if ($aHP > 0) { // перевіряємо життя персонажа більше нуля
// записуємо що гравець знаходиться в бою з ботом
$queryUPDATEusers = mysql_query("UPDATE users SET battlezayavka='bot' WHERE login='$aNickName' ") or die("Савсэм плохо: " . mysql_error());
// характеристики ворога
$astartbotnick = "Враг";
$astartbotHP = rand (30, 36;
$astartbotStrength = rand(2, 6);
$astartbotdef = rand(1, 6);
$astartbotspeed = rand(2, 6);
$astartbotEndurance = rand(2, 5);
$astartbotAccuracy = rand(2, 6);
$astartbotDexterity = rand(2, 6);
$astartbotCharLevel = 1;
$query = mysql_query ("INSERT INTO botbattle (`user1_id`,`user2_id`,`HP`,`Strength`,`def`,`speed`,`Endurance`,`Accuracy`,`Dexterity`,`CharLevel`) VALUES ('$aNickName','$astartbotnick','$astartbotHP','$astartbotStrength','$astartbotdef','$astartbotspeed','$astartbotEndurance','$astartbotAccuracy','$astartbotDexterity','$astartbotCharLevel')") or die (mysql_error());
header("Location: mapa.php");
} else {
// якщо у персонажа життя менше або рівне нулю то бот не може напасти! Тоді видаємо наступне:
echo "<table bgcolor=red><tr><td><br>У вас нет HP сходите к врачу!</td></tr></table>";}
}
}
echo "<div class='panel'><center>Панель</center>
<img src='../images/1fy7.jpg' style=' height: 20px; width: 20px; ' > <input type='text' value='".$aEuro." монет' disabled>;
<img src='../images/clp705069.jpg' style=' height: 20px; width: 20px; '> <input type='text' value='".$aMoney." монет' disabled>;
<img src='../images/loveHP.jpg' style=' height: 20px; width: 20px; '> <input type='text' value='".$aloveHP." знаков' disabled>;
<b>XP</b> <input type='text' value='".$aExperience." опыта' disabled>;
</div><br><center>";
echo $row['name'];
echo "<img src='../images/loc/".$locimg."' style='
height: 350px;
width: 450px;
float:left;
-moz-border-radius: 30px;
-webkit-border-radius: 30px;
-khtml-border-radius:30px;
border-radius: 30px 30px 30px 30px;
' >";
echo "<br>".$row['opes']."</center>";
echo "<center>";
echo eval ($code);
echo "</center>";
if (isset($_GET['pers']))
{ }
else
{
if ($ban == "jes") { echo "<center><div id=red><b><h2> Вас забанили! Пожалуйста обратитесь к стражам чтоб решить возникшую ситуацию!</h2></b></div></center>"; } else {
echo "<p><i>Персонажи:</i> ";
echo $row['persona'];
echo $row['persona2'];
echo $row['persona3'];
echo $row['persona4'];
echo $row['persona5']."</p>";
echo "<p><i>Переходы:</i> ".$row['url'];
echo $row['url2'];
echo $row['url3'];
echo $row['url4'];
echo $row['url5'];
echo $row['url6'];
echo $row['url7']."</p>";
}
}
}
}
?>
</body>
</html>
</html>
Але тут немає нічого такого щоб надсилало таку кількість запитів!