Как записать значения из базы данных в массив в Flash Builder 4 - PullRequest
0 голосов
/ 24 июля 2010

Я хочу отобразить несколько изображений, и когда ролловер над ним, я должен получить всплывающие подсказки (имена). Те же имена есть в базе данных MySQL. Естественно, чтобы всплывающие подсказки отображались без задержки, желательно сразу поместить все имена из базы данных в массив и затем манипулировать ими. Подскажите пожалуйста что я делаю не так?

Php класс для подключения базы данных:

public function getDataMean($id,$dir_id) {
    $mysql = mysql_connect(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD);
    mysql_query("SET NAMES 'utf8';");
     mysql_query("SET CHARACTER SET 'utf8';");
     mysql_query("SET SESSION collation_connection = 'utf8_general_ci';");
    mysql_select_db(DATABASE_NAME);
    $query = "SELECT name FROM files WHERE id='".$id."' AND dir_id='".$dir_id."'";
    $result = mysql_query($query);
    return $result;
} 

Код FB4:

        public var Names:Array = new Array();
        public var textName:String;

        protected function decks_clickHandler(event:MouseEvent):void
        {
            arrayOfNumber = new Array();
            generateArray(minCount,maxCount);       
            randomize(arrayOfNumber);
            var dir_id:int = 7;

            card1.source = "http://***/gallery/7/"+String(arrayOfNumber[0])+".jpg";
            card2.source = "http://***/gallery/7/"+String(arrayOfNumber[1])+".jpg";
            card3.source = "http://***/gallery/7/"+String(arrayOfNumber[2])+".jpg";
            for (var i:int=0; i<4; i++){
                getDataMeanResult.token = authors.getDataMean(arrayOfNumber[i], dir_id);
                Names[i] = getDataMeanResult.lastResult[0].name;
            }   
        }


    ]]>
</fx:Script>

1 Ответ

0 голосов
/ 26 июля 2010

Это немного сложно увидеть из вашего кода.Но как я понял;у вас есть несколько карточек с идентификатором в ID, и вы хотите получать совпадающие данные из массива, когда пользователь взаимодействует с этой карточкой?- Правильно?

Если это так, вы должны вместо этого использовать ассоциативный массив.В AS3 вы используете экземпляр класса Oject в качестве ассоциативного массива (да, это выглядит немного странно).Поэтому, возможно, вам следует переписать свой код, объявляя имена как объект вместо массива.

С учетом сказанного я вижу еще одну проблему с вашим кодом, вы пишете Names[i] = ..., но вы не объявили размерМассив (или, может быть, это то, что делает функция generateArray?).Попробуйте использовать Names.push(getDataMeanResult.lastResult[0].name) вместо.

...