Reputation: 103
Here is function to query temporary table in Model and I want two results one total count of products and second want to display name of each product
public function getProductsName($id){
CI::db()->select('products.Name, products.id,feedback.feedback_refrence');
CI::db()->from('products');
CI::db()->join('feedback', 'products.id = feedback.feedback_refrence');
CI::db()->where('feedback_refrence', $id);
CI::db()->where('feedback_status', '1');
$query = CI::db()->get();
if ($query->num_rows() > 0) {
return $query->result();
} else {
return false;
}
}
Here is the Controller
public function index() {
$data['feedback_name']=\CI::Products()->getProductsName($product->id);
//load the view
$this->view('product', $data);
}
}
Here is var_dump result
<?php echo ("<pre>"); var_dump($feedback_name); echo ("</pre>");?>
array(4) {
[0]=>object(stdClass)#86 (3) {
["Name"]=>string(16) "Dawlance 9122MDS"
["id"]=> string(2) "24"
["feedback_refrence"]=> string(2) "24"
}
[1]=>object(stdClass)#87 (3) {
["Name"]=>string(16) "Dawlance 9122MDS"
["id"]=>string(2) "24"
["feedback_refrence"]=>string(2) "24"
}
[2]=>object(stdClass)#88 (3) {
["Name"]=>string(16) "Dawlance 9122MDS"
["id"]=>string(2) "24"
["feedback_refrence"]=>string(2) "24"
}
[3]=>object(stdClass)#89 (3) {
["Name"]=> string(16) "Dawlance 9122MDS"
["id"]=>string(2) "24"
["feedback_refrence"]=>string(2) "24"
}
}
Upvotes: 0
Views: 90
Reputation: 719
Try to do Groupby for feedback_refrence And select count for the same
like :
function getProductsName($id)
{
CI::db()->select('products.Name, products.id,feedback.feedback_refrence , COUNT(feedback.feedback_refrence ) as feedback_count');
CI::db()->from('products');
CI::db()->join('feedback', 'products.id = feedback.feedback_refrence');
CI::db()->where('feedback_refrence', $id);
CI::db()->where('feedback_status', '1');
CI::db()->group_by('feedback.feedback_refrence');
$query = CI::db()->get();
if ($query->num_rows() > 0)
{
return $query->result();
}
else
{
return false;
}
}
hope this will help.
Upvotes: 1