К сожалению, Flash не может подключиться напрямую к MySQL, поэтому нужно использовать язык web-программирования (php, perl…). В нашей статье мы будет использовать PHP. Принцип обмена данными таков...
К сожалению, Flash не может подключиться напрямую к MySQL, поэтому нужно использовать язык web-программирования (php, perl…). В нашей статье мы будет использовать PHP. Принцип обмена данными таков. Флеш посылает данные(переменные) в php-файл, далее начинается выполнение php-скрипта, в котором идет коннект к mysql, затем данные сохраняются в переменные и выводятся на экран, после чего флеш их принимает как переменные и дальше выполняются какие-либо действия.
Правильный вывод на экран переменных таков: переменная=значение&переменная=значение (и т.д.) - только так флеш сможет принять информацию. Сам процесс генерируется php-скриптом. Для вывода данных на экран, используются команды “echo” или “print”.
НЕПРАВИЛЬНО:
$name1=”Ivan”;
$name2=”Andrey”;
$name3=”Max”;
?> |
ПРАВИЛЬНО:
$name1=”Ivan”;
$name2=”Andrey”;
$name3=”Max”;
echo “name1=$name1&name2=$name2&name3=$name3”;
?> |
Флеш примет данные и создаст переменные name1, name2, name3, также присвоит им полученные значения, после чего можно с ними делать что угодно, как будто мы выполнили AS-операцию:
Var name1,name2,name3;
name1=”Ivan”;
name2=”Andrey”;
name3=”Max”; |
Теперь давайте приведем небольшой пример, демонстрирующий применение Flash->PHP->MySQL->PHP->Flash. Создадим Форму посылки данных “Информация о пользователе”
Допустим, что у нас есть таблица с именем “info” и база “base”, в ней следующие ячейки “id” (индификатор), “name”, “lastname”, “city”, “comment”.
Id- она будет хранить номер записи (индификатор)
Name-здесь будут хранится имена
LastName-фамилии
City-город
Comment-комментарии.
Примечание. Данный SQL-запрос для создания таблицы будет такой:
CREATE TABLE info (
id int(10) unsigned NOT NULL auto_increment,
name VARCHAR(20),
lastname VARCHAR(60),
city VARCHAR(20);
comment VARCHAR(200);
PRIMARY KEY (id)
); |
Создайте во флеш, 4 поля Input text и 1 поле Dynamic text и кнопку, она будет посылать данные. Присвойте Input-полям следующие значения Var (в панели Properties – параметры):
1) name
2) lastname
3) city
4) comment
Динамическому полю присвойте var “message” (без кавычек).
Кнопке присвойте следующий action:
on(release){
loadVariablesNum ("load.php", 0, "POST"); // посылаем данные в файл load.php, из 0 левела, методом POST
} |
Сохраните swf-шку, там же создайте файл load.php, контент файла такой:
// конфиг коннекта к mysql(нужно указать свои данные, если они отличаются от моих), я делал на localhost’е при следующих настройках
$host = "localhost"; // СЕРВЕР MySQL
$user = "root"; // Имя пользователя к базе
$pass = ""; // Пароль к базе
$dbase = "base"; // база
// конец конфига
$name=$name;
$lastname=$lastname;
$city=$city;
$comment=$comment;
$link = mysql_connect("$host", "$user", "$pass") or die("message=Не могу подключиться к MySQL");
mysql_select_db("$dbase") or die("message=Не могу соединиться с базой данных!");
$sql="INSERT INTO info VALUES ('', '$name', ‘$lastname’, ‘$city’, ‘comment’)"; // добавляем значения переменных как новую запись в базе
$send=MYSQL_QUERY($sql);
if($send){ // если $send вернуло положительный результат, то флешка выдаст сообщение, что все пучком, если же отрицательный, то объявит ошибку.
echo “message=Новая запись добавлена, спасибо!”;
} else {
echo “message=Ошибка! Запись не добавлена!”;
}
?> |
Думаю, принцип понятен. Теперь давайте разберем, как можно получить данные.
Например, нам нужно вывести все записи таблицы info, тогда делаем примерно так:
// конфиг коннекта к mysql(нужно указать свои данные, если они отличаются от моих), я делал на localhost’е при следующих настройках
$host = "localhost"; // СЕРВЕР MySQL
$user = "root"; // Имя пользователя к базе
$pass = ""; // Пароль к базе
$dbase = "base"; // база
// конец конфига
$link = mysql_connect("$host", "$user", "$pass") or die("message=Не могу подключиться к MySQL");
mysql_select_db("$dbase") or die("message=Не могу соединиться с базой данных!");
$sql=mysql_query(“SELECT * from info where 1”); //выбираем таблицу info
$count=MYSQL_NUM_ROWS($sql); //записываем в переменную count количество записей
echo “count=$count”; //выводим результат
$i=0;
where($i
//далее присваиваем переменным значения из ячеек
$id=mysql_result($sql,$i,”id”);
$name=mysql_result($sql,$i,”name”);
$lastname=mysql_result($sql,$i,”lastname”);
$city=mysql_result($sql,$i,”city”);
$comment=mysql_result($sql, $i, “comment”);
echo “&name$i=$name&lastname$i=$lastname&city$i=$city&comment$i=$comment”; //выводим результат на экран
$i++;
}
?> |
Например, если у нас 2 записи, то будет такой результат:
Count=2&name0=Vasya&lastname0=Pupkin&city0=Moscow&comment0=Vsem
privet&name1=Pavlik&lastname1=Morozov&city1=Netu&comment1=Hello
vsem! |
Вот дам еще несколько php-команд для mysql-операций:
Изменение Данных
Для изменения данных используется команда UPDATE.
Теперь изменим нашу строку:
$id=”1”//номер строки
$name=”другое имя”;
$lastname=”другая фамилия”;
$city=”другой город”;
$comment=”другие комментарии”;
mysql_query("UPDATE info SET name='$name', lastname=’$lastname’, city=’$city’, comment=’$comment’ WHERE id='$id'"); // обновляем |
Удаление Строки
Указываешь идентификатор строки, удалишь все поля из таблицы!
MYSQL_QUERY("delete from info where id='1'"); //удаляем, id=’ИНДИФИКАТОР’ |
==============================================
P.S. (к уроку): флеш также получит данные, если в начале строки вывода будет символ “&”. Например &count=3&name=Ivan&lastname=Gunkov и т.д…….
Конец урока ;) Исходника, я думаю, тут не надо =)
p.s. Полезно также прочитать урок “Гостевая книга(Flash+PHP+MySQL)”
Всегда ваш, flashdocs.net
Автор: GRINDERS (https://flashdocs.net/)