2011-05-31 32 views
1

我有一個表叫"tax"兩列"id | tax_value"。我可以用foreach很好地列出表格。簡單主義查詢 - >一個具體的行和列

現在我的問題是,當我只想要 在PHP代碼中有一個特定的行和列時,代碼如何?我不希望它在查詢中!

例如:

column 2 (tax_value) 

row 1. 

查詢給了我一個數組,對不對?

+0

Doctrine 1 or 2? – David 2011-05-31 17:16:36

+0

學說1.2。抱歉! – craphunter 2011-05-31 17:34:09

回答

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> 
0

如果您使用Doctrine_Query,那麼您可以使用fetchOne抓取一行。而且它是一個有點,因爲我已經使用原則1,但我與Doctrine_Query您可以在現場選擇列表設置爲一列呼之欲出。

4

與取單行時,您可以使用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 

實施例採用的是假想產品表的類別,並選擇產品的量爲某一類別。

如何在symfony中使用此查詢取決於您的需求:在表格類,模型類,動作中..