简单的学说查询 - >一个特定的行和列

时间:2011-05-31 16:35:06

标签: php symfony1 doctrine

我有一个名为"tax"的表,其中包含两列"id | tax_value"。我可以很好地列出表foreach

现在我的问题是,当我想要的时候代码是怎么样的 php代码中有一个特定的行和列?我不希望它在查询中!!!

例如:

column 2 (tax_value)

row 1.

查询给了我一个数组,对吧?

3 个答案:

答案 0 :(得分:4)

在TaxTable.class.php中:

public function getOneById($id)
{
    $q = Doctrine_Query::create()->select("t.tax_value")
                                 ->from("tax t")
                                 ->where("t.id = ?", $id)
                                 ->fetchOne();
    return $q;
}

行动中:

public function executeTaxView(sfWebRequest $request)
{
    $this->tax = TaxTable::getInstance()->getOneById($request->getParameter("id"));
    $this->forward404Unless($this->tax);
}
在taxViewSucess.php中

  Tax Value: <b><?php echo $tax->getTaxValue();?></b>

答案 1 :(得分:4)

在select语句中使用单个列获取单行时,可以使用Doctrine::HYDRATE_SINGLE_SCALAR

$total = Doctrine_Query::create()->from('Products p')
        ->select('SUM(p.amount) as total')
        ->where('p.category_id = ?', $categoryId)
        ->fetchOne(array(), Doctrine::HYDRATE_SINGLE_SCALAR);
// $total is now a single value, eg. 12

示例使用带有类别的虚构Product表,并选择特定类别的产品数量。

如何在symfony中使用此查询取决于您的需求:在表类,模型类,操作中,..

答案 2 :(得分:0)

如果您使用Doctrine_Query,则可以使用fetchOne抓取一行。此外,我已经使用了Doctrine 1,但我几乎可以肯定使用Doctrine_Query,您可以将字段选择列表设置为一列。