Пятница, 29 Ноября 2024, 00:16

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Создание оналйн таблицы рекордов без использования dll
NeZnayuДата: Суббота, 12 Июня 2010, 15:30 | Сообщение # 1
__танцуй!__
Сейчас нет на сайте
Здравствуйте друзья, сегодня я расскажу вам как создать онлайн таблицу рекордов для вашей игры, не используя длл, только встроенные функции ГМ.

Вам потребуется:


  • Хост с поддержкой php и MySQL (есть бесплатные варианты)
  • Самые базовые знания верстки htm страниц, для "тюнинга" вашей таблицы

И так, создаем новую таблицу (для примера test_mysql) с полями name и score в базе данных, используя следующий SQL зарос:

Code
CREATE TABLE `*имя вашей БД*`.`test_mysql` (
`name` varchar( 32 ) NOT NULL ,
`score` int( 11 ) NOT NULL )

Отлично, готова таблица в БД, теперь создаем php скрипт, который будет работать с этой таблицей:

Code
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=WINDOWS-1251'>

<title>Testing highscore..</title>
</head>
<body>

<h1 align=center>Тестируем рекорды..</h1>
<p align=center><a href='highscore.php'><img src='sp_base.png'></a><br> <br>

<?php
//Чтобы скрипт добавл или обновил информацию об игроке, запусите его вот таким образом:highscore.php?action=set&name=putnamehere&score=scorehere

//сначала подключаемся к БД
$host = "localhost";
$user = "yemsalat";
$pass = "*****";
$scores_db = "testingphp";

$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"];

$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"].")";
     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"]." WHERE name='".$_GET["name"]."'";
     mysql_query($query) or die("Couldn't execute $query: ".mysql_error());}
    }
header("Location: http://yemsalat.org/test/highscore.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>
     </tr>
     ";
{$rating=0;}
    while ($user = mysql_fetch_assoc($res))
    {
$user[name]=htmlspecialchars($user[name]);
$user[score]=htmlspecialchars($user[score]);
$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>    
       </tr>";
    }
    echo "</table>";
}

//свитч следит за тем какую функцию надо выполнить
switch ($action)
{
    case "set": modify_table(); break;
    case "top": show_top(); break;
    default: show_top(); break;
}

//закрыть соединение, это очень важно!
mysql_close();
?>

</body>
</html>

Дальше, уже в ГМ, нам осталось только обратиться к странице на которой расположен php скрипт при помощи функции execute_shell()
Все комментарии по ней - в примере.

СКАЧАТЬ ПРИМЕР

Получается вот такая таблица


CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу


Сообщение отредактировал NeZnayu - Суббота, 12 Июня 2010, 17:15
FedenkoVadikДата: Суббота, 12 Июня 2010, 15:42 | Сообщение # 2
Level 5 Gentleman
Сейчас нет на сайте

Можно этот скрипт подключить как юкозу, а точнее как?
NeZnayuДата: Суббота, 12 Июня 2010, 15:44 | Сообщение # 3
__танцуй!__
Сейчас нет на сайте
Quote (FedenkoVadik)
Можно этот скрипт подключить как юкозу, а точнее как?

Я не знаю поддерживает ли юкоз доступ к php, если да - то можно.


CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
FedenkoVadikДата: Суббота, 12 Июня 2010, 17:08 | Сообщение # 4
Level 5 Gentleman
Сейчас нет на сайте
Quote (NeZnayu)
доступ к php

юкоз не поддерживает пхп
Quote (NeZnayu)
php и MySQL (есть бесплатные варианты)

какие например?
NeZnayuДата: Суббота, 12 Июня 2010, 17:10 | Сообщение # 5
__танцуй!__
Сейчас нет на сайте
Quote (FedenkoVadik)
какие например?

что-то вроде этого


CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу


Сообщение отредактировал NeZnayu - Суббота, 12 Июня 2010, 17:11
FedenkoVadikДата: Суббота, 12 Июня 2010, 17:27 | Сообщение # 6
Level 5 Gentleman
Сейчас нет на сайте
тУт круче, а хостинг взял здесь - качественный оч.
stalkeryaДата: Суббота, 12 Июня 2010, 17:33 | Сообщение # 7
Пользователь Blender 2.5
Сейчас нет на сайте
NeZnayu, Спасибо) Пригодится! + в репу

Бросила девушка после того, как узнала, что я перешел с гм на Construct.
FedenkoVadikДата: Суббота, 12 Июня 2010, 19:03 | Сообщение # 8
Level 5 Gentleman
Сейчас нет на сайте
ну юкоз ладно, а narod.ru, там же есть пхп...
NeZnayuДата: Суббота, 12 Июня 2010, 20:40 | Сообщение # 9
__танцуй!__
Сейчас нет на сайте
Quote (FedenkoVadik)
narod.ru, там же есть пхп...

ну, раз есть - значит можно )


CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
FedenkoVadikДата: Суббота, 12 Июня 2010, 22:24 | Сообщение # 10
Level 5 Gentleman
Сейчас нет на сайте
ну это больше был скорее вопрос, нежели констатация факта... а пхп там я не нашел(( Я вообще ни нашол ничего подходящего, NeZnayu, а у тебя платныйй хостинг? На бесплатном перепробывал штук 7 разных сайтов, понасаздавал всякого, ничего... cry
NeZnayuДата: Суббота, 12 Июня 2010, 22:31 | Сообщение # 11
__танцуй!__
Сейчас нет на сайте
FedenkoVadik, у меня платный.
Здесь где-то была тема "Каким хостингом пользуемся" - там в комментах были ссылки на бесплатные с поддержкой php и MySQL.


CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
FedenkoVadikДата: Суббота, 12 Июня 2010, 23:23 | Сообщение # 12
Level 5 Gentleman
Сейчас нет на сайте
ога, и видет она в гугль... ладно еще поищу, потом отпишусь...
MIKEL922Дата: Воскресенье, 03 Апреля 2011, 20:43 | Сообщение # 13
заслуженный участник
Сейчас нет на сайте
Ребята помогите, пишет ошибку:
Ошибка
SQL-запрос:

CREATE TABLE `*Здесь имя моей бед. публиковать не буду*`.`test_mysql` (

`name` VARCHAR( 32 ) NOT NULL ,
`score` INT( 11 ) NOT NULL
)
Ответ MySQL:

#1044 - Access denied for user: 'servn8@%' to database '*Здесь имя моей бед. публиковать не буду*'


Нет не чего не возможного.
uncog.ru
Ice-maxДата: Воскресенье, 03 Апреля 2011, 22:21 | Сообщение # 14
частый гость
Сейчас нет на сайте

Я поповоду подключения этого всего к юкозу, точнее PHP, mysql, хост нам тож понадобится, но я кажется знаю как "отобразить рекорд на вашем Ucoz'овскем сайте", если у вас .PHP скрипт работает (страница рекорды показывает), пишите может помогу поставить пристроить страницу с рекордами на ваш сайт.
З.Ы.вот один хост есть американский хороший бесплатный хостинг. тОлько нужно знание англ.


Продам недвижисоть 1991г.в. цвет:Мокрый асвальт, Акпп,ABS,полный электропакет, цена договорная возможен обмен на движимость.
Robin_LocksleyДата: Воскресенье, 03 Апреля 2011, 22:25 | Сообщение # 15
постоянный участник
Сейчас нет на сайте
MIKEL922, твоя бд именуется '*Здесь имя моей бед. публиковать не буду*'? biggrin
А имя администратора бд 'servn8@%'? biggrin biggrin biggrin
MIKEL922Дата: Воскресенье, 03 Апреля 2011, 23:50 | Сообщение # 16
заслуженный участник
Сейчас нет на сайте
Я просто публиковать не хочу, это приватная инфа, так мне помогут?

Нет не чего не возможного.
uncog.ru
NeZnayuДата: Четверг, 07 Апреля 2011, 01:14 | Сообщение # 17
__танцуй!__
Сейчас нет на сайте
У пользователя нет прав доступа к бд, ркомендую обратиться в тех поддержку хостинга.

CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
ЙакудДата: Четверг, 23 Июня 2011, 19:42 | Сообщение # 18
участник
Сейчас нет на сайте
MIKEL922, либо у пользователя нет прав доступа на создание таблиц, либо просто убери название БД.
Code
CREATE TABLE `test_mysql` (  

  `name` VARCHAR( 32 ) NOT NULL ,  
  `score` INT( 11 ) NOT NULL  
  )


Для того, чтобы сделать запросы быстрее тебе нужно в таблице добавить индексы. Делается это примерно так:

Добавлено (23.06.2011, 19:42)
---------------------------------------------
Упс, что-то не глянул на дату последнего поста. Прошу прощения.. sad


"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso
.blanco 2.0
m1razДата: Суббота, 25 Июня 2011, 02:09 | Сообщение # 19
почетный гость
Сейчас нет на сайте
вобщето smile юкоз поддерживает ПХП просто надо раскашелится на 3$ (не милион-же).И такое уже чуть более года на укозе )))

Всех задир буду вычеслять по IP!
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг