1

私はAMFPHPとフラッシュを使ったプロジェクトに取り組んでいます。私はphpのことだけをしました。3 つのテーブルから結果を取得し、その結果を 1 つの配列に格納して返す amf の関数は完全に機能していましたが、数日間停止しました。奇妙なことに、結果を個別に返すと機能しますが、最終的な配列は返されず、テスト ブラウザーで AMFPHP 呼び出しからの応答を確認できません。

コードでは、すべてのポイントがDBから適切な結果を得ていると述べ、その結果を適切に返すことをテストしました。

もう1つ奇妙に思えるのは、私が返す部分的な結果はうまくいくが、彼の開始時と終了時は、動作している他の機能のためのものではないということです:

(mx.collections::ArrayCollection)#0
  filterFunction = (null)
  length = 6
  list = (mx.collections::ArrayList)#1
    length = 6
    source = (Array)#2

結果

uid = "8BEDEF32-4BED-E1A4-56A0-F227EDD40026"
  sort = (null)
  source = (Array)#2

ここに関数があります

function getDefaultValuesForAvatarsLocal($jockey_type=NULL){
        $defaultValues = array();
        $sql = "SELECT * FROM default_values";
        $defaultBLValues = $this->db->query($sql);
        $numRows = $this->db->num_rows($defaultBLValues);
        if($numRows > 0){
            $defaultValues['BLP'] = $defaultBLValues; /* IF RETURN THIS GETS RESULT */
            if($jockey_type){
                $sql = "SELECT jockey_clothing_categories.type, jockey_clothing_items.* FROM jockey_clothing_items 
                        JOIN jockey_clothing_categories
                        ON(jockey_clothing_items.category_id = jockey_clothing_categories.id)
                        WHERE jockey_clothing_items.is_default = 1 AND jockey_clothing_items.jockey_type = ". $jockey_type;
                $defaultJockeyClothings = $this->db->query($sql);
                $numRows = $this->db->num_rows($defaultJockeyClothings);
            }
            if($numRows>0){
                if($jockey_type){
                    $defaultValues['DJC'] = $defaultJockeyClothings; /* IF RETURN THIS GETS RESULT */
                }
                $sql = "SELECT horse_avatar_clothings_categories.type, horse_avatar_clothings_items.* FROM horse_avatar_clothings_items 
                        JOIN horse_avatar_clothings_categories
                        ON(horse_avatar_clothings_items.category_id = horse_avatar_clothings_categories.id)
                        WHERE horse_avatar_clothings_items.is_default = 1";
                $defaultHorseClothings = $this->db->query($sql);
                $numRows = $this->db->num_rows($defaultHorseClothings);
                if($numRows>0){
                    $defaultValues['DHC'] = $defaultHorseClothings; /* IF RETURN THIS GETS RESULT */
                    #return $defaultValues; /* NOT RETUNING THE FINAL ARRAY FROM THIS POINT EITHER */
                }else{
#                   return false;
                }
            }else{
#               return false;               
            }
            #return 1333;
            /* THE CONTROL COMES HERE PROPERLY BUT NOT RETUNING THE BELOW ARRAY BUT IS RETUNING ANY TEST TEXT
                LIKE return "I AM HERE"; WILL RETURN THE TEXT PROPERLY
            */
            return $defaultValues;
        }else{
            return false;
        }
    }

任意の助けをいただければ幸いです

4

1 に答える 1

1

なるほど、答えが出ました..

同じ問題に直面している人のためにここに投稿するだけです

行を変更しただけ

return $defaultValues;

return (object)$defaultValues;

そして、このように関数を呼び出しました

$defaultValues = (array)$this->getDefaultValuesForAvatarsLocal();

過去に変更なしで適切に機能していたため、これらの変更でこれが正常に機能している理由がわかりません。誰かがそれを説明できれば、それは私と他のユーザーにとって素晴らしいことです.

よろしく

于 2012-05-16T12:32:30.593 に答える