简体   繁体   中英

Retrieve multiple data with same name in one table in codeigniter

function search_review($input, $serviceName){
        $ipJson = json_encode($input);
        $this->db->select('*');
        $this->db->from('reviews');
        $this->db->where('reviewee_name', $input['reviewee_name']);
        $query = $this->db->get();
        $result = $query->result();
        if (!empty($result)) {
        foreach ($query->result() as $row)
        {
            $data['reviewer_id'] = $row->reviewer_id;
            $data['reviewee_name'] = $row->reviewee_name;
            $data['tournament_played_c_s'] = $row->tournament_played_c_s;
        }
            $data['message'] = 'Review details retrieved successfully.';
            $status = $this->clamo_lib->return_status('success', $serviceName, $data, $ipJson);
        } else {
            $data['message'] = 'Unable to retrieve review details.';
            $status = $this->clamo_lib->return_status('error', $serviceName, $data, $ipJson);
        }
        return $status;
    }

This is my code i can retrieve single row data with same name. eg reviewee_name="sangeetha" means i need to display the details who are having name sangeetha. but now single row data only iam getting what i need to do?

<?php

//don't overwrite the array values
function search_review($input, $serviceName){

    $data = array();

    $ipJson = json_encode($input);
    $this->db->select('*');
    $this->db->from('reviews');
    $this->db->where('reviewee_name', $input['reviewee_name']);
    $query = $this->db->get();
    $result = $query->result();
    if (!empty($result)) {
        foreach ($query->result() as $row)
        {
            //here you're overwriting the values
            $data[]['reviewer_id'] = $row->reviewer_id;
            $data[]['reviewee_name'] = $row->reviewee_name;
            $data[]['tournament_played_c_s'] = $row->tournament_played_c_s;
        }
        $data['message'] = 'Review details retrieved successfully.';
        $status = $this->clamo_lib->return_status('success', $serviceName, $data, $ipJson);
    } else {
        $data['message'] = 'Unable to retrieve review details.';
        $status = $this->clamo_lib->return_status('error', $serviceName, $data, $ipJson);
    }
    return $status;
}

looking at you code.. i could see you are replacing the same key in data array.. so here is the problem ..

try this

..
foreach ($query->result() as $row)
{
        $data[]['reviewer_id'] = $row->reviewer_id;
        $data[]['reviewee_name'] = $row->reviewee_name;
        $data[]['tournament_played_c_s'] = $row->tournament_played_c_s;
 }
...

this won't replace the key..however $data will have different structure (two dimensional array) so just be careful while displaying it..use echo "<pre>";print_r($data); to check the $data structure

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM