Musa Butt
Musa Butt

Reputation: 103

Display name and count of product after JOIN table

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

Answers (1)

Meera Tank
Meera Tank

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

Related Questions