• Авторизация


Работа с MySQL в GM (GameMaker). 15-04-2009 09:30 к комментариям - к полной версии - понравилось!


Для этого нам понадобится 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 - добавим в 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) - теперь запустим наш проект, и нажмем клавишу

теперь если мы зайдем 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);

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+ ' " и все ее содержимое удалено');
}

--------------------
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 ();
}

Дополнительно - --- -------

всю таблицу читаем так -

str = 'SELECT * FROM твоя таблица';
if !gmsql_query(str)
{show_message(gmsql_errormessage()); exit;}
if !gmsql_storeresult()
{
show_message(gmsql_errormessage());
exit;
}

str = 'SELECT * from твоя таблица where стобец= например id ';
if !gmsql_query(str)
{show_message(gmsql_errormessage()); exit;}
if !gmsql_storeresult()
{
show_message(gmsql_errormessage());
exit;
}

str = 'SELECT * FROM твоя таблица WHERE столбец в котором ищим="'+search+';";'
if !gmsql_query(str)
{
show_message('Запрос не выполнен');
exit;
}

if !gmsql_storeresult()
{
show_message(gmsql_errormessage());
exit;
}

Выводим данные из БД

for (i=0; i < gmsql_numrows(); i+=1)
draw_text_ext(15,78+i*20,'',-1,100);


Скачать GameMaker можно тут - GameMaker
вверх^ к полной версии понравилось! в evernote
Комментарии (3):
InternetVoice 18-05-2009-00:21 удалить
Приятно, черт побери, приятно!
20-08-2018-13:39 удалить
при выводе текста из БД выводит SELECT * FROM tab ;
вот код из события Left Buton
str ='SELECT * FROM tab ;';
if !gmsql_query(str)
{show_message(gmsql_errormessage());
exit;
}
if !gmsql_storeresult()
{
show_message(gmsql_errormessage());
exit;
}
А вот из события Drew
draw_sprite(vivesti_danie,0,x,y)
for (i=0; i


Комментарии (3): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Работа с MySQL в GM (GameMaker). | InternetVoice - Дневник InternetVoice | Лента друзей InternetVoice / Полная версия Добавить в друзья Страницы: раньше»