PDA

Просмотр полной версии : Flash + php + mysql программка


JekelSkaz
17.11.2009, 01:21
Обьясняю ситуацию.
Есть БД в которой табличка с данными item, в ней поля - |id|name|loc|locx|locy|
Задача в чем...нужно чтобы флешь читал данные из БД только если у записи loc=5. И чтобы находило все записи с loc=5.
После этого флешь дублирует movieClip какойто...допустим "clip" присваивает клипу имя записи (name) и ставит клип по координатам locx locy.

И так оно продублировало допустим три записи из таблички item и выставило их по ихним координатам.

И еще одна функция , если я ввожу в поле "имя" и то я могу изменить x и y этой записи..

У меня есть запрос на получение данных во флеше который хорошо работает:

myVars = new LoadVars();
myVars.load("read.php");

myVars.onLoad = function( success ){
if(success){
namex.text=myVars.nameuser;
locatex.text=myVars.locx;
locatey.text=myVars.locy;
}
}

Есть php код на запрос у БД

include "config.php";
$data = mysql_connect($base_name, $base_user, $base_pass);
mysql_select_db($db_name);

$query = mysql_query("SELECT * FROM item");
$row = mysql_fetch_array($query);

$nameuser = $row['name'];
$loc = $row['loc'];
$locx = $row['locx'];
$locy = $row['locy'];

echo "loc=".$locs."&name=".$name."&locx=".$locx."&locy".$locy;

Есть код на изминение данных в БД через пхп

loadVariables("send.php", this, "POST");

Есть пхп код на запрос изминения данных в БД после получения из из флеша

include "config.php";
$data = mysql_connect($base_name, $base_user, $base_pass);
mysql_select_db($db_name);

$nameuser = $_POST["nameuser"];

mysql_query("UPDATE item SET name='".$nameuser."' WHERE id='1'");

Все работает но это лишь верхушка всего то что мне нужно, прошу Вас помочь ребята.

mooncar
17.11.2009, 01:30
Тему не там создали, нужно в "Серверные технологии и флеш"
Вот здесь
$query = mysql_query("SELECT * FROM item");
нужна не звездочка, а условие выборки (ваше "если у записи loc=5").
Но это только начало.
Жаль, что вы этого не понимаете. В общем, возьмите учебный курсик по MySQL ( + PHP) и быстренько освойте, иначе по вашему ТЗ все за вас делать кому-то придется, потому что сейчас вы очень далеки от самостоятельного решения ваших задач. Ну, или в "Вакансии", разумеется.

JekelSkaz
17.11.2009, 01:36
Да я пхп знаю, мне помощь с флешем надо) да не тз мне надо)

mooncar
17.11.2009, 02:08
Раз знаете, то начните с формирования правильного запроса и потом получите во флеш и разберите строку:
<?php
include "config.php";
$data = mysql_connect($base_name, $base_user, $base_pass);
mysql_select_db($db_name);

$query = mysql_query("SELECT * FROM item WHERE loc='5'");
$nRows = mysql_num_rows($query)

$rString = "total=".$nRows;

for ($i = 0; $i < $nRows; $i++){
$n = $i + 1;
$row = mysql_fetch_array($query);
$rString .="&name".$n".=".$row['name']."&locx".$n."=".$row['locx'];
}

echo $rString;
?>
var itemname:Array = new Array();
var locx:Array = new Array();
var myVars:LoadVars = new LoadVars();

myVars.onLoad = function( success ){
if(success){
for (i = 1; i <= this.total; i++) { //разбираем полученную строку, this - это и есть myVars
itemname[i] = this['name' + i];
locx[i] = this['locx' + i];
if (i == this.total) {
duplicateMovies (); //в конце цикла разбора строки вызываем функцию дублирования
}
}

}
}
myVars.load('read.php');

function duplicateMovies () {
for (i = 1; i <= itemname.length - 1; i++) {
clip.duplicateMovieClip(itemname[i], i, {_x:locx[i]}); //оригинал.duplicateMovieClip (имя копии, глубина, объект инициализации)
}
}
Тут запрос не полный, только locx и name, и позиционирование копии только по x идет, но логика, думаю, ясна.
Это начало.

JekelSkaz
17.11.2009, 02:43
Спасибо большое, сейчас попробую

mooncar
17.11.2009, 02:45
И имейте ввиду - имена должны быть без пробелов (и желательно, но не критично, латиницей, но кириллицей не принято делать инстанс-имена экземпляров), иначе клип-копия не создастся. Либо задавайте имена копий просто с добавлением нумерации:
clip.duplicateMovieClip('clip' + i, ....
Естественно, мувик с инстанс-именем clip должен находится на сцене.

JekelSkaz
17.11.2009, 08:04
Я сейчас с ума сойду, уже 6 утра я сейчас умру сидя за флешем. Не дублирует клип( пожалуйста, не могли бы Вы мне исходник с пхп файлом предоставить, я Вас оч прошу.

mooncar
17.11.2009, 10:17
У меня нет исходников, написано просто так, без сохранения.
Локализуйте проблему.
1. У вас вообще строку из скрипта получает? Вбейте просто в адресную строку браузера запрос на php-скрипт, то есть проверите, что он выдает - должна получится искомая строка.
2. Внутри myVars протрейсите получаемые переменные, все ли попадает в myVars:
myVars.onLoad = function( success ){
if(success){
trace('this.total=' + this.total);
for (i = 1; i <= this.total; i++) { //разбираем полученную строку, this - это и есть myVars
trace (this['name' + i]);
trace (this['locx' + i]);
}
}
}

JekelSkaz
17.11.2009, 12:36
помоиму у меня с сервером сейчас проблеммы( сейчас переустановлю

Добавлено через 39 минут
Parse error: syntax error, unexpected T_VARIABLE in read.php on line 10
$rString ="total=".$nRows;

Добавлено через 40 минут
$rString ="total=".$nRows;

Добавлено через 1 час 30 минут
куча ошибок в пхп хотя вроде все ок....не работает ни на моем сервере ни на хостинге

Добавлено через 2 часа 58 минут
help please

Добавлено через 6 часов 1 минуту
mooncar я Вас очень прошу помочь мне понять эту систему. С Вами можно связатся по icq если так будет удобнее?

Добавлено через 49 часов 24 минуты
давайте все с начала и по шагам сделаемь..

JekelSkaz
20.11.2009, 16:07
нужен пример обращение в БД, получение данных...создание с помощью данных обьекта (изображение с именем..id ) вывод этого обьекта на экран по установленым в бд координатам, и возможность управлять допустим клавишами либо мышкой этим изображением с постоянной записью в БД его местаположения, происходить должно без обновления страниц.

mooncar
20.11.2009, 16:16
На форуме при добавлении к своему же последнему посту нового они объединяются и в топ не уходят, так что все что вы писали, прошло мимо меня.
В личку бы накатали.
Так что там с php? В адресной строке запускали и ошибки выдает?