0

私はExtjsアプリケーションに取り組んでおり、2つの選択クエリの結果を取得し、結果をJsonでエンコードしてから、これらの結果を含むストアをグリッドビューにバインドする必要があります.

最初の列は「name_scope」で、2番目はスコープの値を含むコンボボックスです(スコープには複数の値を含めることができます)。したがって、mySQL に「scope」と「scope_value」という 2 つのテーブルを作成しました。「scope」テーブルの scope_name を最初の列にバインドし、次に「scope_value」テーブルの値をコンボ列にバインドします。

この件に関して 2 つのストアを作成するのは良い考えではないと思うので、これら 2 つのクエリを含む 1 つの php スクリプトのみを作成したいと思います。

SELECT name_scope FROM scope

SELECT value FROM value_scope WHERE name_scope = "'. $name_scope .'"';

これらは私のテーブルです:

create table scope (name_scope varchar(50) not null primary key, description varchar(100));
create table value_scope (id_value int not null primary key AUTO_INCREMENT,name_scope varchar(50), value varchar(100), 
            foreign key (name_scope) references scope(name_scope) on delete cascade);

私のグリッドビュー:

{
    xtype: 'container',
    id : 'grid_container',

    anchor: '100%',
     forceFit: true,
    items: [{
        xtype: 'gridpanel',
        id: 'scope_grid',
        layout : 'fit',
        frame: true,
        columnLines: true,
        iconCls: 'icon-grid',
        title: 'Prod/Rel added',
        store: 'GetScopeData',
        columns: [{
            id: 'n_scope',
            text: 'Scope',
            flex: 1,
            sortable: true,
            dataIndex: 'name_scope'},

           { header: 'Product Release',
            width: 220,
            fixed: true,
            hideable: false,
            dataIndex: 'value',
            editor: {
                xtype: 'combobox',
                displayField: 'value',
                valueField: 'value',
                mode: 'local',
        editable : false,
                typeAhead: false,
                triggerAction: 'all',
                lazyRender: true,
                emptyText: 'Select action',
                listClass: 'x-combo-list-small'

            }}
]}

私のphpスクリプトはどのように見えるべきですか? 助けていただければ幸いです。

4

2 に答える 2

0

次のように、これら 2 つの select ステートメントを 1 つにまとめることができます。

SELECT value FROM value_scope WHERE name_scope in (SELECT name_scope FROM scope);
于 2013-03-20T10:03:02.580 に答える
0

必要な結果セット (2 つのフィールド (name_scope と value)) を持つ 1 つのストアを作成し、結合を使用してクエリを 1 つに結合できます。

SELECT scope.name_scope,value  FROM scope
INNER JOIN value_scope ON(scope.name_scope = value_scope.name_scope)
WHERE scope.name_scope = "'. $name_scope .'"';
于 2013-03-20T10:03:49.000 に答える