请帮我。 我坚持像一个DataTable的警告:在使用PHP,JSON编码Zend框架“ 的DataTable警告。从服务器JSON数据无法解析这是一个引起的JSON格式错误。”
此警告仅在表是空的情况,但只来了这个问题,当我使用关键字组在SQL查询,如果我不使用组关键字,然后它给从表中只有一条记录,但是表中有更多的记录也。 当我使用下面的查询输出变为,显示所有记录只有表有数据,如果将不显示数据表警告。
// sql查询(型号/表/ product.php)
public function fetchAllProductItems() {
$oSelect = $this->select()
->setIntegrityCheck(false)
->from(array("p" => "products","b" => "bid"), ('*'))
->joinLeft(array("b" => "bid"), "b.product_id=p.product_id", array('bid_id','bid_amount'))
->joinInner(array("e" => "employees"), "e.employee_id=p.employee_id",array('ename'))
->where("p.verified = ?", "Yes")
->where("p.sold_out = ?", "No")
->group('p.product_id')
->having("p.sale_end_date >= ?", date("Y-m-d"));
return $oSelect;
}
// JSON编码(模块/销售/控制器/ apicontroller)
public function getProductsAction()
{
$oProductModel = new Application_Model_Db_Table_Products();
$oSelect = $oProductModel->fetchAllProductItems();
echo Zend_Json::encode($this->_helper->DataTables($oSelect, array('product_id','e.ename as employee_name','name', 'brand', 'conditions', 'about','image_path', 'reserved_price', 'Max(b.bid_amount) as amount')));
}
下面的查询将只显示一个记录,如果超过一个记录在表中有。 如果表是空的话,我会来“没有在表中提供的消息数据会来”。
// sql查询(型号/表/ product.php)
$oSelect = $this->select()
->setIntegrityCheck(false)
->from(array("p" => "products","b" => "bid"), ('*'))
->joinLeft(array("b" => "bid"), "b.product_id=p.product_id", array('bid_id','bid_amount'))
->joinInner(array("e" => "employees"), "e.employee_id=p.employee_id",array('ename'))
->where("p.verified = ?", "Yes")
->where("p.sold_out = ?", "No")
->where("p.sale_end_date >= ?", date("Y-m-d"));