0

我正在开发一个 Extjs 应用程序,我需要获取两个选择查询的结果,在 Json 中对结果进行编码,然后将包含这些结果的存储绑定到 gridview。

我有一个包含两列的gridview,第一列是“name_scope”,第二列是一个组合框,应该包含范围的值(一个范围可以有多个值)。所以我在 mySQL 中创建了两个表,“scope”和“scope_value”,我想将“scope”表中的 scope_name 绑定到我的第一列,然后将“scope_value”表中的值绑定到组合列。

我认为为此创建两个商店不是一个好主意,因此我只想创建一个包含这两个查询的 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

您可以将这两个 select 语句合二为一,例如

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),并使用 join 将您的查询合并为一个:

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 回答