Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Flash + php + mysql программка (http://www.flasher.ru/forum/showthread.php?t=132627)

JekelSkaz 17.11.2009 01:21

Flash + php + mysql программка
 
Обьясняю ситуацию.
Есть БД в которой табличка с данными 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

Тему не там создали, нужно в "Серверные технологии и флеш"
Вот здесь
PHP код:

$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;
?>

Код AS1/AS2:

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

И имейте ввиду - имена должны быть без пробелов (и желательно, но не критично, латиницей, но кириллицей не принято делать инстанс-имена экземпляров), иначе клип-копия не создастся. Либо задавайте имена копий просто с добавлением нумерации:
Код AS1/AS2:

clip.duplicateMovieClip('clip' + i, ....

Естественно, мувик с инстанс-именем clip должен находится на сцене.

JekelSkaz 17.11.2009 08:04

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

mooncar 17.11.2009 10:17

У меня нет исходников, написано просто так, без сохранения.
Локализуйте проблему.
1. У вас вообще строку из скрипта получает? Вбейте просто в адресную строку браузера запрос на php-скрипт, то есть проверите, что он выдает - должна получится искомая строка.
2. Внутри myVars протрейсите получаемые переменные, все ли попадает в myVars:
Код AS1/AS2:

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 минут
PHP код:

$rString ="total=".$nRows

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

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

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

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

JekelSkaz 20.11.2009 16:07

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


Часовой пояс GMT +4, время: 11:10.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.