Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Flash и база данных в MS Access
Flash Zone Forum > Macromedia Flash > Общие вопросы
NikBil
Всем добрый день,
проблема состоит в том, что в Flash должнo произойти соединение с базой данных например proba.mdb и сделать опрос по дате. Информация должна выводится в текстовом окне Flash, текст должен медленно проявляться, а потом также медленно исчезать. Поочередно друг за другом, показывая так все строчки, которые совпадают по дате из базы данных.

System-DNS в Windows XP Pro я активировал.

PHP файл con.php выглядит следующим образом:
<?php

$dsn = "proba.mdb";
$tabelle = "Work";
$uid = "";
$pwd = "";

$conn = odbc_connect($dsn,$uid,$pwd);

$result = odbc_exec($conn, "SELECT * FROM $tabelle");
$i=1;

while (odbc_fetch_row($result, $i)){
echo $i. ". ". odbc_result($result, "Name")."<br>";
$i++;
}

?>

В Flash я подключаю PHP файл: loadVariables("con.php", "");

Но никакого соединения не происходит.
ПОМОГИТЕ чайнику, очень надо.
За ранее благодарю.
MustLive
NikBil

Ты сделал много ошибок в процессе подключения флеша к БД. Поэтому и не работает у тебя вывод данных из БД.

Исправь все имеющиеся ошибки и тогда данные из Access передадутся во флеш. Вот перечень ошибок, которые тебе нужно исправить:

1. Установи локальный веб сервер (например, Apache) на компьютер. PHP должен запускаться с локального веб сервера.

2. Установи PHP интерпретатор в систему и настрой его на работу в веб сервером.

3. System-DNS ты уже настроил. Теперь проверь, чтобы PHP соединялся с твоей БД (после того как ты решишь п.1 и п.2). Т.е. вначале убедись, что PHP скрипт соединяется с базой и выводит из неё данные, а уже потом вызывай его из флеша. Для этого сделай все необходимые настройки веб сервера и PHP.

4. Вместо loadVariables("con.php", ""); используй код loadVariables("http://localhost/con.php", ""); - т.е. указывай полный путь к скрипту на веб сервере.

5. Ты выводишь данные в скрипте как html-форматированный текст, а тебе нужно передавать их в виде параметров флешу. Для этого выводи данные в виде CGI-параметров: param1=value1&param2=value2...&paramN=valueN.

Цитата
текст должен медленно проявляться, а потом также медленно исчезать

Этот эффект реализуй на флеше.
NikBil
Цитата(MustLive @ 7.09.2009 - 01:00) *
NikBil

Ты сделал много ошибок в процессе подключения флеша к БД. Поэтому и не работает у тебя вывод данных из БД.

Исправь все имеющиеся ошибки и тогда данные из Access передадутся во флеш. Вот перечень ошибок, которые тебе нужно исправить:

1. Установи локальный веб сервер (например, Apache) на компьютер. PHP должен запускаться с локального веб сервера.

2. Установи PHP интерпретатор в систему и настрой его на работу в веб сервером.

3. System-DNS ты уже настроил. Теперь проверь, чтобы PHP соединялся с твоей БД (после того как ты решишь п.1 и п.2). Т.е. вначале убедись, что PHP скрипт соединяется с базой и выводит из неё данные, а уже потом вызывай его из флеша. Для этого сделай все необходимые настройки веб сервера и PHP.

4. Вместо loadVariables("con.php", ""); используй код loadVariables("http://localhost/con.php", ""); - т.е. указывай полный путь к скрипту на веб сервере.

5. Ты выводишь данные в скрипте как html-форматированный текст, а тебе нужно передавать их в виде параметров флешу. Для этого выводи данные в виде CGI-параметров: param1=value1&param2=value2...&paramN=valueN.
Этот эффект реализуй на флеше.


Вольшое спасибо, MustLive, за быстрый ответ. Еще один вопрос: "А можно ли вообще все сделать без установки локального сервера?" Дело в том, что программа будет работать на другом компе, который будет использоваться чисто для презентации. Поэтому установка на нем локального сервера не может быть сделана. Если такой вариант проходит, то тогда нужен другой язык для соединения с бд (PHP отподает). Если ты знаешь, как можно решить мою проблему, то напиши мне, благодарю заранее.
MustLive
Цитата
Еще один вопрос: "А можно ли вообще все сделать без установки локального сервера?"

NikBil, можно сделать и так. Но не на чистом флеше. Можешь сделать приложение на Visual Basic, VC++ или Delphi, включить в программу ActiveX компонент флеша и через интерфейсы используемого языка программирования связаться с БД Access и передать эти данные флешу.

Цитата
Дело в том, что программа будет работать на другом компе, который будет использоваться чисто для презентации.

Иначе, если не использовать подобные усложнённые варианты, понадобится использовать веб сервер. Конечно ты можешь использовать текстовый формат данных, чтобы читать его во флеше, тогда ни веб сервер, ни СУБД, ни PHP тебе не понадобятся, но тогда не будет удобств работы с БД.

Также замечу, что веб сервер может быть не только локальный. Ты можешь использовать веб сервер размещённый на сервере в Интернете (при наличии доступа к Сети с нужно компьютера). Естественно этот веб сервер должен поддерживать работу с ODBC через PHP. В таком случае будешь обращаться к скрипту на данном сервере: loadVariables("http://site.com/con.php", "").
NikBil
Цитата(MustLive @ 8.09.2009 - 00:58) *
NikBil, можно сделать и так. Но не на чистом флеше. Можешь сделать приложение на Visual Basic, VC++ или Delphi, включить в программу ActiveX компонент флеша и через интерфейсы используемого языка программирования связаться с БД Access и передать эти данные флешу.
Иначе, если не использовать подобные усложнённые варианты, понадобится использовать веб сервер. Конечно ты можешь использовать текстовый формат данных, чтобы читать его во флеше, тогда ни веб сервер, ни СУБД, ни PHP тебе не понадобятся, но тогда не будет удобств работы с БД.

Также замечу, что веб сервер может быть не только локальный. Ты можешь использовать веб сервер размещённый на сервере в Интернете (при наличии доступа к Сети с нужно компьютера). Естественно этот веб сервер должен поддерживать работу с ODBC через PHP. В таком случае будешь обращаться к скрипту на данном сервере: loadVariables("http://site.com/con.php", "").


Большое спасибо, MustLive,
ты совершенно прав, для меня, как новичка это все очень сложно, буду пытаться получить результат все таки при помощи веб сервера.
Если у меня в процессе работы появятся новые вопросы, то я очень надеюсь на твою помощь.
Да, еще. Если я буду применять веб сервер, то наверное мне лучше тогда использовать БД в МYSQL чем в Access. Или это уже не играет никакой роли?
NikBil
MustLive, снова обращаюсь за помощью, я все сделал, как ты мне написал, установил webserver, php и mysql. Все хорошо. Скрипт на PHP работает, связь с БД устанавливается.
Скрипт во Flash:

loadVariables("http://localhost/Jiskor_Projekt/connect.php", _root);
_root.onData=function():Void
{
for(var i=0; i < counter; i++)
{
varText= имя+" "+отчество+" "+"\t"+фамилия+"\n";
}
}

Проблема: PHP передает массив, а во Flash выводится только последняя строчка.

Что делать!!!! ohmy.gif
Русская версия IP.Board © 2001-2014 IPS, Inc.