我想知道表中有多少行。我正在使用的數據庫是一個MySQL數據庫。我已經有一個Db_Table類,用於撥打電話fetchAll()
。但是我不需要表中的任何信息,只需要計算行數。如何在不致電fetchAll()
的情況下統計表格中的所有行?Zend_Db:如何從表中獲取行數?
回答
$count = $db->fetchOne('SELECT COUNT(*) AS count FROM yourTable');
你可以做fetchAll
認爲是有害的一個
SELECT COUNT(*)
FROM your_table
$dbo->setFetchMode(Zend_Db::FETCH_OBJ);
$sql = 'SELECT COUNT(*) AS count FROM @table';
$res = $dbo->fetchAll($sql);
// $res[0]->count contains the number of rows
計數行。
這裏是如何做到這一點的Zend_Db_Select對象的方法:
$habits_table = new Habits(); /* @var $habits_table Zend_Db_Table_Abstract */
$select = $habits_table->select();
$select->from($habits_table->info(Habits::NAME), 'count(*) as COUNT');
$result = $habits_table->fetchRow($select);
print_r($result['COUNT']);die;
你爲什麼說「用fetchAll計數行被認爲是有害的」? – Andrew 2009-12-18 23:44:29
嗯,你正在加載你的整個表到內存... – 2009-12-19 01:12:59
加計數功能來爲您Zend_Db的對象要統計所有錶行
public function count()
{
return (int) $this->_table->getAdapter()->fetchOne(
$this->_table->select()->from($this->_table, 'COUNT(id)')
);
}
不適用於過濾 - 請參閱我的答案... – 2011-06-16 05:56:50
再次閱讀,問題不是過濾! – 2011-06-19 13:29:14
啊。對不起:(如果你編輯你的答案(單個字符會做)我可以恢復downvote ... :) – 2011-06-21 08:24:03
正確的Zend-方法是使用Zend_Db_Select對象像這樣:
$sql = $table->select()->columns(array('name', 'email', 'status'))->where('status = 1')->order('name');
$data = $table->fetchAll($sql);
$sql->reset('columns')->columns(new Zend_Db_Expr('COUNT(*)'));
$count = $table->getAdapter()->fetchOne($sql);
這是在Zend_Paginator中完成的。另一種選擇是你的列列表前增加SQL_CALC_FOUND_ROWS
然後得到發現行與此查詢次數:
$count = $this->getAdapter()->fetchOne('SELECT FOUND_ROWS()');
什麼是$表? – 2011-06-15 20:57:04
它是Zend_Db_Table實例。或者它也可以是Zend_Db_Adapter。 metod在兩個。它爲DbTable返回Zend_Db_Table_Rowset,爲適配器返回數組... – 2011-06-16 05:56:11
如果您需要計算已經丟失了原始結果集的作假查詢的結果,此答案尤其有用... +1 – nzn 2017-10-30 06:59:08
我是那種簡約的:
public function count()
{
$rows = $db->select()->from($db, 'count(*) as amt')->query()->fetchAll();
return($rows[0]['amt']);
}
一般可以使用在所有表。
- 1. 如何從sqllite表中獲取數據
- 2. 如何從表格中獲取數據
- 3. 如何從表格中獲取數據
- 4. Zend_Db不刪除表格行
- 5. 如何從數據表中獲取一組行
- 6. 如何從數據庫表中獲取下一行?
- 7. 如何從數據表中獲取行號?
- 8. 如何從mysql表中獲取總行數?
- 9. 如何從YUI數據表中獲取選定行的內容?
- 10. 如何從兩個表中獲取數據作爲一行
- 11. 如何從表格行獲取值?
- 12. 如何從這一行獲取數組?
- 13. 如何從resultResult獲取行數?
- 14. 如何從HttpListenerRequest獲取表單參數?
- 15. 如何在刪除()行後從表中獲取剩餘行
- 16. 如何從indexPathsForSelectedRows獲取「行」?
- 17. 如何獲取數據存儲中表中的行數?
- 18. 如何從數據庫中的兩個表中獲取數據?
- 19. 如何從JavaScript中的數據表中獲取數據?
- 20. 如何從spring數據jpa中的表中獲取數據?
- 21. 如何從ios中的sqlite數據庫表中獲取數據?
- 22. 如何從codeigniter中的數據庫表中獲取數據?
- 23. 如何用Zend_Db添加多行?
- 24. 從Web表獲取行數 - Selenium WebDriver Java
- 25. 華廷:獲取行從表計數
- 26. 從mysql表獲取行到php數組
- 27. 如何從參數中獲取數據
- 28. 如何從XML獲取參數並執行exe列表?
- 29. 如何從Parse中獲取randomn行?
- 30. 如何從DataGridView的行中獲取DataRow
+1爲fetchOne而不是fetchRow – 2011-05-15 22:37:37