| Работа с 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); На сгодня пока хватит. если есть ошибки извеняйти если вам понравилась статейка то продолжем. Разберем, следующие как удалять таблицу полностью, удалять запись, вставлять новые записи и редактировать имеющиеся
В ритме электро, вращается планета, в этой музыке рождается энергия света. Тачкииии... Статьи... Есть вопросы ? Вам сюда - 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
|
Я требую продолжения банкета!
|
| |
| | |
|
Mugen
| Дата: Среда, 18.06.2008, 06:11 | Сообщение # 5 |
Болтун
Группа: Проверенные
Сообщений: 249
Статус: Offline
|
Ну? =) разберем Select, Insert, Update??? на примере каком-нибудь
|
| |
| | |
|
NoCD
| Дата: Среда, 18.06.2008, 09:59 | Сообщение # 6 |
Хрен заткнешь
Группа: Проверенные
Сообщений: 272
Статус: Offline
|
желания нету Добавлено (18.06.2008, 06:22) --------------------------------------------- хотя, смотрю многим интересно стало, думаю завтра напишу. P.S обещать не буду.. но постораюсььь В дагонку, давно дело было - 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 (); } пока что усе, если есть вопросы задаем, если есть ошибки или не точности, попровляйте, и извеняйте Добавлено (18.06.2008, 09:59) --------------------------------------------- готовый пример. правда изменен, если что то не понятно спрашиваем не стесняемся 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 - омертвевшая сцылка
Сообщение отредактировал Mugen - Среда, 18.06.2008, 14:38 |
| |
| | |
|
NoCD
| Дата: Среда, 18.06.2008, 14:55 | Сообщение # 8 |
Хрен заткнешь
Группа: Проверенные
Сообщений: 272
Статус: Offline
|
Вроде все правильно, надо проверять, я просто сутки уже не спал, и не много не соображаю. Добавлено (18.06.2008, 14:55) ---------------------------------------------
она живая просто ФТП выключил я там ЕХЕ файл, если нужен исходник выложу.
В ритме электро, вращается планета, в этой музыке рождается энергия света. Тачкииии... Статьи... Есть вопросы ? Вам сюда - 489144100
|
| |
| | |
|
Mugen
| Дата: Среда, 18.06.2008, 15:00 | Сообщение # 9 |
Болтун
Группа: Проверенные
Сообщений: 249
Статус: Offline
|
Хы, я до 6:30... Хотелось бы посмотреть на исходник (Как буит время расшарь его)
|
| |
| | |
|
NoCD
| Дата: Среда, 18.06.2008, 15:07 | Сообщение # 10 |
Хрен заткнешь
Группа: Проверенные
Сообщений: 272
Статус: Offline
|
В ритме электро, вращается планета, в этой музыке рождается энергия света. Тачкииии... Статьи... Есть вопросы ? Вам сюда - 489144100
|
| |
| | |
|
Mugen
| Дата: Среда, 18.06.2008, 15:19 | Сообщение # 11 |
Болтун
Группа: Проверенные
Сообщений: 249
Статус: Offline
|
Интерестно Но у меня выдает ???????? вместо текста (загружаемого из БД), типа 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
|
толи я сплю толи ты, толи месаги так догло доходят короче не будем тут флудить, пиши в аську. Добавлено (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 |
| |
| |
|
|