0

1 つのビューから 2 つのモデル関数を実行しようとしています。最初のクエリは正常に動作しているようです。2 番目のクエリは、空の配列を返します。クエリを画面に出力すると、次のように、クエリが結合しているように見え、分離していないことに気付きました。

JDatabaseQueryMySQL Object ( [db:protected] => JDatabaseMySQL Object ( [name] => mysql [nameQuote:protected] => ` [nullDate:protected] => 0000-00-00 00:00:00 [dbMinimum:protected] = > 5.0.4 [_database:JDatabase:private] => Curling_Schedule [connection:protected] => Resource id #19 [count:protected] => 0 [cursor:protected] => Resource id #72 [debug:protected] = > [limit:protected] => 0 [log:protected] => Array ( ) [offset:protected] => 0 [sql:protected] => SELECT team_name, division FROM #_ autoschedTeams ORDER BY division [tablePrefix:protected] =>エンセックス[utf:protected] => 1 [errorNum:protected] => 0 [errorMsg:protected] => [hasQuoted:protected] => [quoted:protected] => 配列 ( ) ) [type:protected] => select [ element:protected] => [select:protected] => JDatabaseQueryElement Object ( [name:protected] => SELECT [elements:protected] => Array ( [0] => sheet, id ) [glue:protected] => , ) [delete:protected] => [update:protected] => [insert:protected] => [from:protected] => JDatabaseQueryElement オブジェクト ( [name:protected] => FROM [elements:protected] => Array ( [ 0] => #__autoschedPlayingSheets ) [glue:protected] => , ) [join:protected] => [set:protected] => [where:protected] => [group:protected] => [having:protected] = > [列:保護] => [値:保護] => [順序:保護] => JDatabaseQueryElement オブジェクト ([名前:protected] => ORDER BY [elements:protected] => Array ( [0] => sheet ) [glue:protected] => , ) [union:protected] => [autoIncrementField:protected] => )

モデル:

    public function getTeams()
    {


            // Create a new query object.           
            $db = JFactory::getDBO();
            $query = $db->getQuery(true);
            // Select some fields
            $query->select('team_name, division');
            // From the hello table
            $query->from('#__autoschedTeams');
            $query->order('division');      
            $db->setQuery((string)$query);
            $teams = $db->loadResultArray();
            $div = $db->loadResultArray(1);
            $divs = array_unique($div);
            $result = [];
            foreach($divs as $key)
            {
                $result[$key] = [];
                foreach(array_keys($div, $key) as $index)
                {
                   array_push($result[$key], $teams[$index]);
                }
            }
            return $result;
 }
             public function getSheets()
    {

            // Create a new query object.           
            $db = JFactory::getDBO();
            print_r($query);
            $query = $db->getQuery(true);
            // Select some fields
            $query->select('sheet, id');
            // From the hello table
            $query->from('#__autoschedPlayingSheets');
            $query->order('sheet'); 
            //print_r($query);  
            $db->setQuery($query);
            $result = $db->loadResultArray();
            return $result;

    }

}

ビューからの関連コード:

$teams_sched = $this->get('Teams');
$sheets_sched = $this->get('Sheets');
4

1 に答える 1

1

変数の名前を変更して確認してください。

結果が再び得られない場合は、クエリecho $query;を印刷して確認してください。

public function getSheets()
{      
    $db     = JFactory::getDBO();               
    $query  = $db->getQuery(true);                
    $query->select('sheet, id');
    $query->from('#__autoschedPlayingSheets');
    $query->order('sheet'); 
    $db->setQuery($query);
    $Sheets = $db->loadResultArray();

    print_r($Sheets);

    return $Sheets;

}
于 2012-11-21T06:39:58.800 に答える