<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=WINDOWS-1251'>
<title>Highscore Game Zombie Cat</title>
</head>
<body>
<h1 align=center>Топ- 50 убийц</h1>
<?php
//Чтобы скрипт добавл или обновил информацию об игроке, запусите его вот таким образом:highscore.php?action=set&name=putnamehere&score=scorehere
//сначала подключаемся к БД
$host = "localhost";
$user = "ввёл";
$pass = "ввёл";
$scores_db = "ввёл";
$connect=mysql_connect ($host,$user,$pass) or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ($scores_db);
//создадим переменные из тех что были приняты, чтобы было проще к ним обращаться
$score=$_GET["score"];
$name=$_GET["name"];
$kill=$_GET["kill"];
$action=$_GET["action"];
//эта функция добавляет или обновляет игрока в таблице
function modify_table()
{
//сначало находим ряд в котором имя = заданному игроком имени
$query = "SELECT * FROM test_mysql WHERE name='".$_GET["name"]."'";
$res = mysql_query($query) or die("Couldn't execute $query: ".mysql_error());
//если такого ряда нет - значит игрока еще нет в БД, если есть, значит игрок уже был туда внесен
if (mysql_num_rows($res)==0)
{
//игрока нет - создаем новый ряд с его именем и очками
$query = "INSERT INTO test_mysql VALUES('".$_GET["name"]."',".$_GET["score"].",".$_GET["kill"].")";
mysql_query($query) or die("Couldn't execute $query: ".mysql_error());
}
//игрок есть - обновляем его результат, если он выше чем тот который записан
else
{
$checker = mysql_fetch_assoc($res);
if ($checker[score]<$_GET[score])
{//обновляем результат
$query = "UPDATE test_mysql SET score=".$_GET["score"]." SET kill=".$_GET["kill"]." WHERE name='".$_GET["name"]."'";
mysql_query($query) or die("Couldn't execute $query: ".mysql_error());}
}
header("Location: http://game.vipxd.hdd1.ru/index.php?curname=$_GET[name]");
exit;
}
function show_top()
{
//этой функцией мы выбираем первые 50 рядов по возрастанию очков
$query = "SELECT name, score FROM test_mysql ORDER BY score DESC LIMIT 50";
$res = mysql_query($query) or die("Couldn't execute query: ".mysql_error());
//дальнейший код создает html таблицу с результатами
echo "
<table align=center border=1>
<tr>
<td align='center'> <b>#</b> </td><td align='center'> <b>Имя</b> </td> <td align='center'> <b>Очки</b> </td> <td align='center'> <b>Убийства</b> </td>
</tr>
";
{$rating=0;}
while ($user = mysql_fetch_assoc($res))
{
$user[name]=htmlspecialchars($user[name]);
$user[score]=htmlspecialchars($user[score]);
$user[kill]=htmlspecialchars($user[kill]);
$rating++;
echo "<tr>
<td align='center'>
".$rating."
</td>";
//выделяем выбранное имя зеленым фоном (если задана переменная $_GET[curname])
if($_GET[curname]!=$user[name])
{ echo"<td align='center'>";}
else
{echo"<td align='center' bgcolor=#adff2f>";}
echo"".$user["name"]."
</td> <td align='center'>
".$user["score"]."
</td>
<td align='center'>
".$user["kill"]."
</td>
</tr>";
}
echo "</table>";
}
//свитч следит за тем какую функцию надо выполнить
switch ($action)
{
case "set": modify_table(); break;
case "top": show_top(); break;
default: show_top(); break;
}
//закрыть соединение, это очень важно!
mysql_close();
?>
</body>
</html>
Что получается если игрока нет в базе данных то он создаётся и записываются имя результат убийств
Ошибки
1)Если игрок есть, то должен сработать скрипт проверки результата если он больше то обновится, но не обновляется я думаю проблема в
$query = "INSERT INTO test_mysql VALUES('".$_GET["name"]."',".$_GET["score"].",".$_GET["kill"].")";
2)Не выводятся убийства ( в базе данных они есть)