gpt4 book ai didi

php - 如何在 yii 查询中按列值分组?

转载 作者:行者123 更新时间:2023-11-30 01:31:43 25 4
gpt4 key购买 nike

我有一个包含 7 列和 400 条记录的数据表。其中之一是预算。我想按预算对 400 行进行分组,以便得到如下所示的数组:

[budget]=>array(
[0]=>array(
[column1]=>'1',
[column2]=>'sand'
),
[1]=>array(
[column1]=>'2',
[column2]=>'clay'
)
)
[budget2]=>array(
[0]=>array(
[column1]=>'3',
[column2]=>'silt'
),
[1]=>array(
[column1]=>'4',
[column2]=>'stone'
)
)

到目前为止,我一直在使用 Yii 的 CdbCommand 和 CdbDataReader 以及 PHP 的 PDOStatement,但没有任何效果。我尝试了以下代码

public function actionBidCostByBudget(){

$command = Yii::app()->db
->createCommand()
->Select('*')
->From('bid_cost')
# ->Query()
;
echo '<pre>';
echo get_class($command);
$pdostatement=$command->getPdoStatement();
if($pdostatement) echo get_class($pdostatement);
# print_r($statement->fetchall(PDO::FETCH_COLUMN|PDO::FETCH_GROUP));
# print_r($command->readall());
# print_r($statement->fetch());
# $columnsArray = BidCost::attributeLabels();

//print_r($rowsArray);
//$this->layout='\\layout';
}

所有对 print_r 的尝试都没有打印出来。 getPdoStatement 不等于任何内容。我一直在尝试按照 Php.net 网站使用 PDO::FETCH_COLUMN|PDO::FETCH_GROUP ,但它也不起作用,因为我什么也没得到。

最佳答案

Yii 的优势之一是它的 ActiveRecord ,那么为什么不使用它呢?

将您的预算放入单独的表中(以便您可以从中生成模型)。从您的“数据表”引用它。

CREATE TABLE budget (
id INTEGER PRIMARY KEY,
name TEXT
);

CREATE TABLE datatable(
column1 TEXT,
column2 TEXT,
...
budget_id INTEGER,
FOREIGN KEY(budget_id) REFERENCES budget(id)
);

接下来使用 Gii 生成模型,现在您可以使用新建立的关系,如下所示:

$budget = Budget::model()->findByAttributes( ["name"=>"budget2"] );
foreach( $budget->datatables as $dt ) {
echo $dt->column1;
echo $dt->column2;
}

(我知道。不是您要求的数组。抱歉,如果我偏离了这一点。)

关于php - 如何在 yii 查询中按列值分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17372476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com