Create site free
Работа с MySQL в GM. - Решение серьезных вопросов - Разработка игр на Game Maker (Advanced Mode) - Форум Game Maker. Разработка игр.
Здравствуй Гость | Перейти на сайт

Главная | Форум | Регистрация | Войти
gmaker.net ;) [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 41234»
Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Advanced Mode) » Решение серьезных вопросов » Работа с MySQL в GM. (Такс может, кому не будь понадобиться.)
Работа с MySQL в GM.
NoCD Дата: Пятница, 21.03.2008, 03:22 | Сообщение # 1
Хрен заткнешь
Группа: Проверенные
Сообщений: 272
Статус: Offline
Такс может, кому не будь понадобиться.
Работа с MySQL в GM.

Для этого нам понадобится GMSQL.dll libmySQL.dll gmsql.gml качаем - GMsql
также понадобится Apache или Джентльменский набор Web-разработчика "Денвер" качаем от сюда

Приступим.
Создадим новый проект и назовем его например GmMySQL сохраним его и туда же поместим наши dll
Создаем Objects - назовем его, например obj_connection
Add event - добавим Create в Action напишем следущие

if !gmsql_init() // Инициализируем gmsql_init
{
show_message(gmsql_errormessage()); // выводим сообщение об ошибке (ошибках) - таких как запрос, инициализации и.т.д
exit; // если инициализация gmsql_init не выполнилась то - завершаем выполнение данной подпрограммы
}

if !gmsql_connect('localhost','root','','game') // запрос на подключение к БД
{
show_message('Не могу соединится с базой.'); // выводим сообщение если не смогли при конектится к БД
exit; // если не смогли при конектится то - завершаем выполнение данной подпрограммы}
else
{

show_message('Подключились к БД.'); //если есть конект к БД то выводим сообщение.
}

Функция - gmsql_connect ('host','username','password','db_name')

устанавливает сетевое соединение с базой данных MySQL, расположенной на
хосте на пример 'localhost', и возвращает идентификатор открытого соединения. Вся дальнейшая работа ведется
именно с этим идентификатором. При регистрации указывается имя пользователя 'username' и пароль
'password'. db_name имя базы данных.

Теперь создадим комнату (room) и поместим наш объект (obj_connection) - теперь запустим наш проект.

И так если все заработало как нам надо продолжим.

довайти попробуем создать первою свою таблицу и так
создадим новый объект в нашем проекте GmMySQL и назовем его - obj_create_tab
Add event - добавим <enter> в Action напишем следующие

str = 'CREATE TABLE tab' + "(name VARCHAR(20), password VARCHAR(20))"+";"; //Создаем таблицу с двумя колонками 'name и password' "строка - VARCHAR Может хранить не более 255 символов."
if !gmsql_query(str) // запрос.
{
show_message(gmsql_errormessage()); // выводим сообщение об ошибке (ошибках) - таких как запрос, инициализации и.т.д
exit;
// если не смогли выполнить запрос - завершаем выполнение данной подпрограммы
}
show_message('Таблица создана!'); //если все удачно выводим сообщение
если нам больше не нужно работать с БД то gmsql_close ()

поместим наш объект (obj_create_tab) в комнату (room) - теперь запустим наш проект, и нажмем клавишу <enter>

теперь если мы зайдем phpMyAdmin - администрирование СУБД MySQL и глянем нашу БД ('game') мы увидим там свою таблицу tab
состоящая из двух колонок (column). 'name и password'

Функция - gmsql_query() Посылает запрос базе данных MySQL.
Функция - gmsql_close () Закрывает установленное ранее соединение с базой данных.

P.S Создание таблицы производится командой CRTEATE TABLE.

CREATE TABLE table_name (column1 type, column2 type,...)

table_name - имя новой таблицы;
column - имена колонок, которые будут
присутствовать в создаваемой таблице.
type - определяет тип создаваемой колонки.

пример -
SQL запрос

CREATE TABLE `tab` (
`name` varchar(20), `password` varchar(20)) ;

А на PHP вот так -
mysql_connect("localhost", "root", "");
mysql_select_db("game");

$sql="CREATE TABLE tab (name varchar(20), password varchar(20))";
mysql_query($sql);

На сгодня пока хватит. если есть ошибки извеняйти smile
если вам понравилась статейка то продолжем.
Разберем, следующие как удалять таблицу полностью, удалять запись, вставлять новые записи и редактировать имеющиеся



В ритме электро, вращается планета, в этой музыке рождается энергия света.
Тачкииии...
Статьи...

Есть вопросы ? Вам сюда - 489144100

Сообщение отредактировал NoCD - Пятница, 21.03.2008, 06:31
 
CH@$ER Дата: Пятница, 21.03.2008, 09:04 | Сообщение # 2
Всех уже задолбал
Группа: Высший Советник
Сообщений: 1088
Статус: Offline
И как оно работает по скорости? Баги?


Создание 3D FPS · Онлайновые таблицы рекордов · Многое другое!
 
NoCD Дата: Понедельник, 24.03.2008, 00:56 | Сообщение # 3
Хрен заткнешь
Группа: Проверенные
Сообщений: 272
Статус: Offline
Работает хорошо, например как PHP, MySQL.


В ритме электро, вращается планета, в этой музыке рождается энергия света.
Тачкииии...
Статьи...

Есть вопросы ? Вам сюда - 489144100

 
Wollf Дата: Суббота, 10.05.2008, 01:58 | Сообщение # 4
Разговорчивый
Группа: Пользователь
Сообщений: 136
Статус: Offline
Я требую продолжения банкета! happy
 
Mugen Дата: Среда, 18.06.2008, 06:11 | Сообщение # 5
Болтун
Группа: Проверенные
Сообщений: 249
Статус: Offline
Ну? =)
разберем Select, Insert, Update???
на примере каком-нибудь
 
NoCD Дата: Среда, 18.06.2008, 09:59 | Сообщение # 6
Хрен заткнешь
Группа: Проверенные
Сообщений: 272
Статус: Offline
желания нету sad

Добавлено (18.06.2008, 06:22)
---------------------------------------------
хотя, смотрю многим интересно стало, думаю завтра напишу.

P.S обещать не буду.. но постораюсььь smile

В дагонку, давно дело было - http://vl.ucoz.ru/forum/11-2027-1

Добавлено (18.06.2008, 09:38)
---------------------------------------------
INSERT производит вставку новых строк в таблицу

global.name=get_string('Добавить запись в колонку Name:','');
global.pass=get_string('Добавить запись в колонку Password:','');

str ='INSERT into tab values ("'+global.name+'","'+global.pass+'");'; //tab имя нашей таблицы
if !gmsql_query(str)
{
show_message('Запрос не выполнин.');
exit;
}
else
{
show_message('Добавлино.');
}

Добавлено (18.06.2008, 09:43)
---------------------------------------------
DELETE FROM - удаление записей

global.name = get_string("Введите имя строки, в колонке Name",'');
str ='delete from tab where name= ("'+global.name+'");'; //tab имя нашей таблицы,where name= указываем колонку. в нашем случие это первая (name)
if !gmsql_query(str)
{
show_message('Запрос не выполнин.');
exit;
}
else
{
show_message('Строка с именем " ' +global.name+ ' " и все ее содержимое удалено');
}

Добавлено (18.06.2008, 09:46)
---------------------------------------------
UPDATE обновление записи.

global.name = get_string("Новая запись",'');
global.names = get_string("Старая запись - указать запись, в колонке name",'');

str ='UPDATE tab SET name= ("'+global.name+'") WHERE name= ("'+global.names+'") ;'; // указываем колонку. в нашем случие это первая (name), global.name вводим новаю запись, global.names указываем запись которою надо заменить. на пример в таблице в колонке name есть запись Primer, получается следущее сперва мы вводим "Пример" потом "Primer" после чего получаем не "Primer" а Пример.

if !gmsql_query(str)
{
show_message('Запрос не выполнин.');
exit;
}
else
{
show_message('Запись " '+global.names+' " заменина на " '+global.name+' "' );
}

И последнее -

DROP TABLE - Удаление таблицы.

if show_message_ext('Внимание!!! таблица будет удалена полностью, продолжить ?','Да','Нет',':)') = true

{

if gmsql_query('DROP TABLE tab')
{
show_message('Таблица удалена');
exit;
}
else
{
show_message('Таблица несуществует');
}
gmsql_close ();
}

пока что усе, если есть вопросы задаем, если есть ошибки или не точности, попровляйте, и извеняйте smile

Добавлено (18.06.2008, 09:59)
---------------------------------------------
готовый пример. правда изменен, если что то не понятно спрашиваем не стесняемся smile
http://amigos.ucoz.com/GmMySQL.gm6



В ритме электро, вращается планета, в этой музыке рождается энергия света.
Тачкииии...
Статьи...

Есть вопросы ? Вам сюда - 489144100

Сообщение отредактировал NoCD - Среда, 18.06.2008, 09:59
 
Mugen Дата: Среда, 18.06.2008, 14:42 | Сообщение # 7
Болтун
Группа: Проверенные
Сообщений: 249
Статус: Offline
Спасибо =)
А как насчет считывания значения из ячейки и присвоения её какой-нибудь переменной?
Code
if !gmsql_connect(db_ip,db_user,db_pass,db_table)
       {
        show_message(gmsql_errormessage());
        game_end();
        exit;
       }   
    if gmsql_query('SELECT '+argument1+' from '+argument0+' WHERE Account='+argument2+'')
    {
     gmsql_storeresult();
     if gmsql_numrows()>0
        {
          for (i=0; i<gmsql_numrows(); i+=1)
            {   
            var result;
            result='';
            result=gmsql_getvaluexy(0,0);       
            }
            return result;
        }
    }
    else
    {
     show_message('Failed to load.');
     exit;
     }
argument0 - таблица
argument1 - ячейка, которую выбирают
argument2 - условие выбора ячейки

Делаем скрипт value = script_select("Tab","Name","1")

Все правильно? А то может есть что-то лишнее или это можно сделать легче?

Добавлено (18.06.2008, 14:42)
---------------------------------------------
P.s. ftp://213.141.138.29/GM/gallery.rar - омертвевшая сцылка wacko



Сообщение отредактировал Mugen - Среда, 18.06.2008, 14:38
 
NoCD Дата: Среда, 18.06.2008, 14:55 | Сообщение # 8
Хрен заткнешь
Группа: Проверенные
Сообщений: 272
Статус: Offline
Вроде все правильно, надо проверять, я просто сутки уже не спал, и не много не соображаю.

Добавлено (18.06.2008, 14:55)
---------------------------------------------

Quote (Mugen)
P.s. ftp://213.141.138.29/GM/gallery.rar - омертвевшая сцылка

она живая просто ФТП выключил я smile
там ЕХЕ файл, если нужен исходник выложу.


В ритме электро, вращается планета, в этой музыке рождается энергия света.
Тачкииии...
Статьи...

Есть вопросы ? Вам сюда - 489144100

 
Mugen Дата: Среда, 18.06.2008, 15:00 | Сообщение # 9
Болтун
Группа: Проверенные
Сообщений: 249
Статус: Offline
Хы, я до 6:30...
Хотелось бы посмотреть на исходник wink
(Как буит время расшарь его) biggrin
 
NoCD Дата: Среда, 18.06.2008, 15:07 | Сообщение # 10
Хрен заткнешь
Группа: Проверенные
Сообщений: 272
Статус: Offline


В ритме электро, вращается планета, в этой музыке рождается энергия света.
Тачкииии...
Статьи...

Есть вопросы ? Вам сюда - 489144100

 
Mugen Дата: Среда, 18.06.2008, 15:19 | Сообщение # 11
Болтун
Группа: Проверенные
Сообщений: 249
Статус: Offline
Интерестно smile
Но у меня выдает ???????? вместо текста (загружаемого из БД), типа
Quote
Описание - ???????? ??? ???? блаблабла ???? ? ???????
 
NoCD Дата: Среда, 18.06.2008, 15:27 | Сообщение # 12
Хрен заткнешь
Группа: Проверенные
Сообщений: 272
Статус: Offline
ты когда БД создовал какую кодеровку ставил ?


В ритме электро, вращается планета, в этой музыке рождается энергия света.
Тачкииии...
Статьи...

Есть вопросы ? Вам сюда - 489144100

 
Mugen Дата: Среда, 18.06.2008, 15:35 | Сообщение # 13
Болтун
Группа: Проверенные
Сообщений: 249
Статус: Offline
по-ходу cp1251 Cyrrilic
 
NoCD Дата: Среда, 18.06.2008, 15:56 | Сообщение # 14
Хрен заткнешь
Группа: Проверенные
Сообщений: 272
Статус: Offline
толи я сплю толи ты, толи месаги так догло доходят smile
короче не будем тут флудить, пиши в аську.

Добавлено (18.06.2008, 15:56)
---------------------------------------------
if !gmsql_connect('db_ip','db_user','db_pass,db_table')
{
show_message(gmsql_errormessage());
game_end();
exit;
}
if gmsql_query('SELECT '+argument1+' from '+argument0+' WHERE Account='+argument2+'')
{
gmsql_storeresult();
if gmsql_numrows()>0
{
for (i=0; i<gmsql_numrows(); i+=1)
{
var result;
result='';
result=gmsql_getvaluexy(0,0);
}
return result;
}
}
else
{
show_message('Failed to load.');
exit;
}



В ритме электро, вращается планета, в этой музыке рождается энергия света.
Тачкииии...
Статьи...

Есть вопросы ? Вам сюда - 489144100

 
Mugen Дата: Среда, 18.06.2008, 16:49 | Сообщение # 15
Болтун
Группа: Проверенные
Сообщений: 249
Статус: Offline
db_ip = '127.0.0.1';
db_user = 'root';
db_pass = 'mypass';
db_table = 'mytable';

if !gmsql_connect(db_ip,db_user,db_pass,db_table)

 
NoCD Дата: Среда, 18.06.2008, 22:17 | Сообщение # 16
Хрен заткнешь
Группа: Проверенные
Сообщений: 272
Статус: Offline
В случием с переменами, то да..


В ритме электро, вращается планета, в этой музыке рождается энергия света.
Тачкииии...
Статьи...

Есть вопросы ? Вам сюда - 489144100

 
San4eZ Дата: Понедельник, 18.08.2008, 19:36 | Сообщение # 17
Сказал что-то
Группа: Пользователь
Сообщений: 42
Статус: Offline
Я конечно извеняюсь. Но не могли бы вы перезалить, а то у меня не качает (((


Сообщение отредактировал San4eZ - Понедельник, 18.08.2008, 21:21
 
Mugen Дата: Понедельник, 18.08.2008, 20:29 | Сообщение # 18
Болтун
Группа: Проверенные
Сообщений: 249
Статус: Offline
 
San4eZ Дата: Понедельник, 18.08.2008, 21:10 | Сообщение # 19
Сказал что-то
Группа: Пользователь
Сообщений: 42
Статус: Offline
оГРОООООмное спасибо!!!!
----добавил
А где сама DLL??? Она то мне и нада.


Сообщение отредактировал San4eZ - Понедельник, 18.08.2008, 21:15
 
Mugen Дата: Понедельник, 18.08.2008, 21:23 | Сообщение # 20
Болтун
Группа: Проверенные
Сообщений: 249
Статус: Offline


Сообщение отредактировал Mugen - Понедельник, 18.08.2008, 21:26
 
Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Advanced Mode) » Решение серьезных вопросов » Работа с MySQL в GM. (Такс может, кому не будь понадобиться.)
Страница 1 из 41234»
Поиск:



Сообщество Gmaker.SU 2005-2012
Используются технологии uCoz
Простой вход