Создание и работа с удаленной базой данных MySQL через PHP
Вложений: 3
Создание и работа с удаленной базой данных MySQL через PHP
В данной статье я постараюсь подробно описать как создать базу данных MySQL на сервере, как создать PHP скрипт для работы с этой базой данных, как создать приложение для мобилы, которое будет обращаться к нашему PHP скрипту. К примеру, перед нами стоит банальная задача: У нас есть некая мобильная игра и нам хотелось бы чтобы таблица результатов к этой игре хранилась на удаленном сервере. Если у вас немного другие задачи, неважно. Принцип один и тот же. Нужно с мобильника передать информацию PHP скрипту чтобы он записал её в базу данных и наоборот, обратиться к PHP скрипту чтобы он нам выдал какую-то информацию из базы данных. Это не обязательно может быть таблица результатов. Вы, к примеру, можете сделать онлайн регистрацию для вашей программы и на сервере, к примеру, будет хранится информация типа имя/пароль и PHP скрипт будет только хранить эту информацию и выдавать ответ можно ли запускать программу или нет. Всё это лишь мелкие детали, принцип кругом один и тот же. Так что тут мы покажем всё это на примере хранения таблицы рекордов. Прежде всего нам нужно выбрать хостинг. Подойдет далеко не любой. Нам нужен хостинг с поддержкой PHP, MySQL, FTP. А таких мало, поверьте мне. Я нашел бесплатный хостинг для примера. Но вам всё же советую воспользоваться платным хостингом. Поверьте, лучше заплатить 10$ и получить качественный хостинг без рекламы и тормозов, чем мучиться с бесплатным. Я нашел для примера бесплатный хостинг на http://hostmonster.org.ua/ Итак, я создал бесплатный сайт www.mptest.hmsite.net При регистрации мне дали такую информацию: Адрес MySQL сервера: sql301.hmsite.net Пользователь MySQL: hoste_5225350 Пароль для MySQL: 123456mp Адрес FTP сервера: ftp.hmsite.net Логин FTP: hoste_5225350 Пароль FTP: 123456mp При регистрации вас попросят подтвердить ваш email. Думаю с этим проблем не возникнет, просто перейдите по ссылке в пришедшем письме. C помощью контрольной панели (http://cpanel.hmsite.net/) я создал базу данных под названием "mybase" (её тут же перекрестили в "hoste_5225350_mybase") Если на вашем хостинге нет контрольной панели и нет никаких инструментов по работе с базами данных, не беда. Можно всё сделать и с помощью одного только PHP. Теперь приступаем к созданию PHP скрипта. Для начала основы синтаксиса MySQL запросов. Для создания нашей базы данных нужно дать серверу команду: PHP код:
id - тут хранится уникальный ID номер записи в таблице, MySQL сервер сам присваивает номера нашим записям (INT) username - тут хранится имя пользователя (TEXT) points - тут будут храниться набранные очки (INT) Для добавления записи в нашу таблицу нужно дать серверу команду типа: PHP код:
ID номер в таблице будет вставлен автоматически сервером. Для получения таблицы рекордов нужно передать команду: PHP код:
Но в таблице могут содержаться сотни тысяч записей, а нам нужно вывести список из 10 пользователей с наибольшим количеством очков, поэтому наш запрос нужно немного усовершенствовать: PHP код:
причем выводить нужно только первые 10 значений (LIMIT 10). В принципе, этих знаний уже хватит для создания скрипта. Если перед вами стоят другие задачи или вы заинтересовались остальными поддерживаемыми командами MySQL сервера - советую почитать книгу по MySQL потому как все команды сервера описать в данной статье не представляется возможным. Итак, создаем файл score.php и в любом текстовом редакторе пишем там такие строки: PHP код:
Для переделки скрипта под ваш хостинг нужно будет только изменить первые 4 строчки скрипта, где указываются адрес сервера, логин, пароль, название базы данных и проч. Теперь нам понадобится FTP доступ к нашему сайту. Для соединения с сайтом я использую Total Commander. Вы же можете легко применить и другой FTP клиент. Итак, в TC нажимаем Ctrl+F или выбираем пункт FTP - Соединиться с FTP сервером В появившемся окне нажимаем кнопку "Добавить..." и вводим в поля нужные значения. и жмем кнопку "Ок". В появившемся окне выбираем имя нашей учетной записи и жмем "Соединиться". Если все параметры вы ввели правильно и соединение прошло успешно, то в одной из панелей вы увидите папку под названием "htdocs". Именно в эту папку нам и нужно закачать наш скрипт score.php С удаленными папками на FTP сервере можно работать как и с обычными. Для закачки файла просто перетащите его из одного окошка в другое. Теперь запускаете ваш любимый браузер. У кого Opera, у кого FireFox. На худой конец сгодится и IE. СОЗДАНИЕ ТАБЛИЦЫ В БАЗЕ ДАННЫХ Для создания базы данных нужно в браузере набрать ссылку типа PHP код:
ДОБАВЛЕНИЕ ЗАПИСИ В ТАБЛИЦУ Теперь попробуйте добавить запись в таблицу. Для этого в браузере пишем запрос типа: PHP код:
ЗАПРОС ЗАПИСЕЙ ИЗ ТАБЛИЦЫ Ну а теперь попробуем запросить таблицу результатов. Для этого в браузере пишем в строке адреса такое: PHP код:
Теперь пишем программу для MIDlet Pascal: PHP код:
|
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
Odd, спасибо за очень хорошую статью :super:
|
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
Прикольно получается! А таким способом можно будет создать сервак для ява-игры?
|
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
Цитата:
- имя / пароль (для всяких регистраций сервисов) - карты или уровни для многоуровневых игр - можно сделать форум, чат или некий аналог аськи (общение между пользователями) - всякие сервисы по выдаче информации (гороскопы, прогнозы погоды, новости) - и проч. Если вас интересует эти или ещё какие-то направления, то напишите пожелание что вы хотите сделать и я напишу пример PHP скрипта. |
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
Я то в php и mysql не сильно шарю. Интересно было бы узнать пример php чата. Причем данные из архива таблицы должны постоянно удаляться чтобы не засорять сервер.
|
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
Цитата:
Там пользователь/очки, а в чате пользователь/сообщение. Там сортировать нужно по количеству очков. В чате - по дате и времени сообщения. Ладно, я скоро выложу пример PHP скриптов чата и примет программы на мидлет паскале для чата. Тем более что там нужно будет добавить функцию автоматического удаления старых сообщений, можно ещё добавить пример регистрации. |
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
http://forum.boolean.name/showthread.php?t=1724&page=3 (www.boolean.name > Программирование игр для мобильных телефонов > JAVA Micro Edition > Программирование > собираю команду)
тут в сообщении от меня есть вложеные файлы на мидлетпаскале и пхп. давно делал но забросил. пхп часть и клиентская часть. (однорукий бандит) |
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
1) код
PHP код:
Еще возникло несколько проблем с кодировкой: 2) Через браузер русские символы просматривает только cp1251. Ставил в базе и скрипте cp1251, utf8 кодировки, но KEmulator и мобильный принимают кракозябры, английские символы отображается нормально. 3) При посылке сообщения на сервер через эмулятор с текста почему-то удаляются все пробелы. Через браузер все нормально. |
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
Цитата:
Цитата:
|
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
СПС Я долго ждал этой статьи
|
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
Цитата:
|
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
Цитата:
|
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
Я вот подумыываю сделать свою игру (KillemAll, мож кто видел) под онлайн. На 2-3 человек. Вот вопросы:
- Итак, каждый такт работы игры будет генерится текстовая строка 1xxxyyyaaa, в которой 1 - ID действия (в данном случае, передача координат) x - координата x, y - координата y, a - угол поворота. Плюс при выстреле будет генериться строка, содержащая информацию о том, под каким углом летит пуля. Это ещё 4 байта: 2aaa 2 - ID действия (из противника вылетает пулся под указанным углом) aaa -угол Допустим, фпс - 10, игрок в среднем выпускает по 1 пуле в секунду. Получаем: 10*10+4=104 байта в секунду. Пусть для игры человеку хватает 10-20 минут. 104*60*10(20)=62 400 (124 800). Вопросы: 1. Не будет ли тормозить передача данных, если отправлять эти данные слишком часто (10-20 раз в секунду)? 2. Не жалко ли отдавать за 20 минут игры >=125КБ трафика (для тех, у кого "встроенный", траффик интернет)? 3. Всякие процедуры по скорости перемещения героя и столкноения с препятствиями вычисляет телефон. То есть какой хакер может ломануть игру и поставит, скажем, мега скорость. Выход - завставить производить все вычисления на сервере, а телефону отправлять лишь данные (например - телефон отправляет запрос (хочет узнать не столкнулся ли герой с препятствием). Сервер проверяет это и отправляет телефону отзыв ('1' - да столкнулся, стой на месте; '0' - все нормально, беги дальше.)). Но это же дополнительный трафик! Что посоветуете? Вот. Буду рад если кто ответит. |
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
PassCall, я примерно тем же самым сейчас занимаюсь + у меня есть законченная (но косячная) ммо Doom story2.
И так, делюсь опытом: 1) Зачеркни свои вычисления, в них ты не учел то, что каждый раз будет отправляться на сервер куча заголовков хттп и прочей хрени. Да и возвращать тебе будут не только твою строку. В общем мета-данных в нашем случае оказывается больше, чем самих данных. 2) С учетом п.1, лагов мобильного интернета и того что запрос выполняется и ответ генерируется не мгновенно, то расчитывай на 1 обмен данными в 1.5-2 секунды. 3) Все вычисления повесить на серв - слишком сложно, можно попробовать сделать как я в cherry classic. Слишком нереалистичные данные (слишком большой урон противнику, слишком далекое перемещение за короткий срок) стоит отвергать сервером и клиентом стоит проверять, что эти данные не подвергаются внезапному слишком большому изменению. Возможно первых 2х проблем можно избежать если у тебя внешний ИП и ты разберешься с сокетами. |
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
Как я понял, передача данных в реальном времени - безнадежная затея?
А жаль =( |
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
Это не отменяет теоретической возможности создания нормальной онлайн игры. Просто нужно чтобы клиент мог продержаться пару секунд без инета.
Либо попробуй разобраться с сокетами. |
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
Почти накалякал этот чат, тока вопрос возник: ни у кого такого не было, когда выводится инфа, скачанная с сайта и выводится потом процедура wait (procedure wait;
begin ok := CreateCommand('Дальше', CM_OK, 1); AddCommand(ok); repaint; repeat clicked := GetClickedCommand; delay(20); until clicked <> EmptyCommand; RemoveCommand(ok); end) то эта кнопка не выводится! |
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
Если кто заинтересован в этом проекте чата и готов его совместно развивать, стуканите в аську (353351220)
|
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
При попытке изменить тип с int на text вылазит это
PHP код:
|
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
Текстовое поле - VARCHAR. Насчет использования типа TEXT знаю мало, но могу сказать, что он тебе врядли нужен.
|
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
Цитата:
PassCall, нехитрое сообщение ошибки говорит вам что нужно либо убрать часть "DEFAULT" (поле не может иметь значение по умолчанию), либо попробывать задавать поле с DEFAULT еще при создании таблицы. |
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
привет! подскажите по теме, если я зарегал сайт на h19.ru, всё сделал как надо, НО вот этот пункт не работает "http://mptest.hmsite.net/score.php?action=install"
как быть? что это вообще за инстал? |
Ответ: Создание и работа с удаленной базой данных MySQL через PHP
он там создает таблицу в базе данных
|
Часовой пояс GMT +4, время: 16:18. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot