Сохранение/Загрузка переменной в бд mysql.

другие уроки, мануалы, советы по Construct 2

Сообщение Сохранение/Загрузка переменной в бд mysql.
» 15 авг 2016, 20:22

Привет, так как по этой теме статей практически нет, я решил написать небольшой урок. Изначально, большая часть исходника без урока взята отсюда. Но, как я и сказал: уроков по этой теме практически нет.
Итак.
 I. Что нам понадобится.
1) Аккаунт на BeGet.ru.
2) Construct 2. Любая лицензия.
3) Хотя бы небольшое знание языка php.
4) Программа NotePad++.

 II. Создаём базу данных.
1) Тыкаем на "MySql". Изображение
2) Создаём базу данных. У меня она уже есть. И нажимаем на выделенную кнопку.Изображение
3) Создаём таблицу "registration" (можете любую, главное, чтобы потом отредактировать это в скрипте). Изображение
4) Создаём 2 строки: Username (text) и ставим "ограничение" на 32 символа. И Money (int). "Ограничение" - 32 символа.

 III. Приступаем к написанию php-скрипта.
1) Создаём новый документ в Notepad++. Выбираем синтаксис: PHP. Изображение
2) Приступаем. Сначала разрешаем кроссдоменные запросы.
Код: Выделить всё
<?php
header ('Access-Control-Allow-Origin: *');


3) Берём адрес для внешних подключений, логин, имя базы данных и пароль. Изображение
Код: Выделить всё
<?php
header ('Access-Control-Allow-Origin: *');

$mysql_host = "localhost";
$mysql_database = "y91384a8_basa";
$mysql_user = "y91384a8_basa";
$mysql_password = "**********";

4) Подключаемся к базе.
Код: Выделить всё
<?php
header ('Access-Control-Allow-Origin: *');

$mysql_host = "localhost";
$mysql_database = "y91384a8_basa";
$mysql_user = "y91384a8_basa";
$mysql_password = "************";

$link = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die("Ошибочка вышла...");
mysql_select_db($mysql_database, $link) or die ("Ой...");

5)
Код: Выделить всё
<?php
header ('Access-Control-Allow-Origin: *');

$mysql_host = "localhost";
$mysql_database = "y91384a8_basa";
$mysql_user = "y91384a8_basa";
$mysql_password = "*************";

$link = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die("Ошибочка вышла...");
mysql_select_db($mysql_database, $link) or die ("Ой...");

$to = $_POST['to'];

if($to == 'savemoney'){
   $username = $_POST['username'];
   $money = $_POST['money'];
   
   $q1 = mysql_query("SELECT * FROM registration WHERE username='".$username."' ORDER BY username DESC LIMIT 1");
   if(mysql_num_rows($q1)==0){//Если строки нет - то создаём.
      mysql_query("INSERT INTO registration VALUES (NULL,'".$username."','".$money."')");   
   } else {//Иначе - обновляем её и устанавливаем переменную.
      mysql_query("UPDATE registration SET money='".$money."' WHERE username='".$username."'");
   }

   echo 'Сохранено!';//Отображаем счастье для пользователя.
}
- Пишем код для "сохранения".
6) Код для загрузки:
Код: Выделить всё
<?php
header ('Access-Control-Allow-Origin: *');//Разрешили кроссдоменные запросы

$mysql_host = "localhost";
$mysql_database = "y91384a8_basa";
$mysql_user = "y91384a8_basa";
$mysql_password = "**************";

$link = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die("Ошибочка вышла...");
mysql_select_db($mysql_database, $link) or die ("Ой...");

$to = $_POST['to'];

if($to == 'savemoney'){
   $username = $_POST['username'];
   $money = $_POST['money'];
   
   $q1 = mysql_query("SELECT * FROM registration WHERE username='".$username."' ORDER BY username DESC LIMIT 1");
   if(mysql_num_rows($q1)==0){
      mysql_query("INSERT INTO registration VALUES (NULL,'".$username."','".$money."')");   
   } else {
      mysql_query("UPDATE registration SET money='".$money."' WHERE username='".$username."'");
   }

   echo 'Сохранено!';
}

if($to == 'loadmoney'){
   $username = $_POST['username'];

   $q1 = mysql_query("SELECT * FROM registration WHERE username='".$username."' ORDER BY username DESC LIMIT 1");
   if(mysql_num_rows($q1)==0){
      echo 'Ошибка.';   
   } else {
      $q2 = mysql_fetch_array($q1);      
      echo $q2['money'];
   }
}

Также нужно не забыть поменять кодировку на UTF-8, чтобы потом не было "кракозябр" или вопросительных знаков.

 IV. Делаем исходник.
Тут особо я буду без комментариев. Так как суть должна быть понятна.
Изображение
Изображение
Сохранение:
Код: Выделить всё
"to=savemoney&username="&MyUserName&"&money="&Money

Загрузка:
Код: Выделить всё
"to=loadmoney&username="&MyUserName

Загружаем наш скрипт через файловый менеджер. Он тоже находится в меню. Называем "money.php"

Достаточно мало описания из-за достаточно, увы, позднего времени. Также я переписывал несколько раз. Надеюсь, что кому-то помогла статья. Ещё раз говорю, что сам долго не мог найти, не только на форуме. Везде. Потом всё-таки "дошло"... Долго оно...
Последний раз редактировалось Nikita141101 15 авг 2016, 20:34, всего редактировалось 1 раз.
Если вы найдёте какие-либо статьи (язык: английский) - то пишите - обязательно переведу.
Аватара пользователя

Участник
Сообщений: 87
Я тут с 06 июн 2016
Откуда: Томск
Двиг: Construct 2
Репутация 11 [ ? ]

Сообщение Сохранение/Загрузка в бд mysql.
» 15 авг 2016, 20:23

Также, если где-то будут ошибки - я буду рад их исправить) На этом всё. :good2:
Если вы найдёте какие-либо статьи (язык: английский) - то пишите - обязательно переведу.
Аватара пользователя

Участник
Сообщений: 87
Я тут с 06 июн 2016
Откуда: Томск
Двиг: Construct 2
Репутация 11 [ ? ]

Сообщение Сохранение/Загрузка переменной в бд mysql.
» 16 авг 2016, 11:37

Будет полезно :yes:
Изображение
Аватара пользователя

Участник
Сообщений: 123
Я тут с 14 фев 2013
Лицензия: Personal
Репутация 6 [ ? ]

Сообщение Сохранение/Загрузка переменной в бд mysql.
» 29 сен 2020, 22:46

Извиняюсь за некропостинг. Урок супер, сделал и все работает. НО не могу сделать, чтобы из БД загружалось сразу несколько переменных? Пытался написать
$q2 = mysql_fetch_array($q1);
echo $q2['balans','maxrun'];
две переменные 'balans' и 'maxrun'.
Но тогда в Констракте не пойму что делать, попробовал так
Изображение
не работает, конечно. Я так понимаю надо как-то через массив делать, но я в них еще не вник. МОжет кто-то простой пример на две переменные написать? Спасибо
Аватара пользователя

Участник
Сообщений: 32
Я тут с 09 мар 2017
Репутация 0 [ ? ]

Сообщение Сохранение/Загрузка переменной в бд mysql.
» 30 сен 2020, 00:00

echo $q2['balans','maxrun']; замените на echo $q2['balans'].'_'.$q2['maxrun'];
(уже подзабыл особенности работы с php, но главное получить на выходе "ячейка1_ячейка2")
тогда на выходе получится что-то вроде 120_625
нижнее подчёркивание будет являться разделителем, как работать с разделителем описал здесь
tokenat(Ajax.lastdata,0,"_") - balans
tokenat(Ajax.lastdata,1,"_") - maxrun
 
Изображение
Аватара пользователя

cliva
Сообщений: 818
Я тут с 07 май 2017
Двиг: CC,C2
Лицензия: full
Репутация 317 [ ? ]

Сообщение Сохранение/Загрузка переменной в бд mysql.
» 30 сен 2020, 16:03

cliva, Огромное спасибо! Мало того, что все заработало, так еще и на примере разобрался с tokenat.
Аватара пользователя

Участник
Сообщений: 32
Я тут с 09 мар 2017
Репутация 0 [ ? ]



Вернуться в Другие уроки по Construct 2

Сейчас эту тему просматривают

Зарегистрированные пользователи: нет зарегистрированных пользователей

Наверх