Получить результат в соответствии с условием if в codeigniter - PullRequest
0 голосов
/ 11 февраля 2019

Я использую следующий код, я хочу, чтобы, если статус был "0", тогда я "одобрил", должен отображаться, если статус "1", то должен отображаться неутвержденный. Как я могу это сделать, я пытался с помощью следующего кода, но не работает дляme

$this->db->select('*');
$this->db->from('surgery');
$this->db->where('doctor_id',$add_data['doctor_id']);
$query = $this->db->get();

if ( $queryc->num_rows() > 0 )
{
    $rows = $query->result_array();
    $newEntry=array();
    foreach ($rows as $rown)
    {
        $newEntry = $rown;
        if($rown['status']=="0")
        {
            $newEntry["status"] = "dissapproved";
        }
        else
        {
            $newEntry["status"] = "approved";
        }
    }
}

приведенный выше код, показывающий один результат / запись, например, следующим образом

Array
(
    [id] => 5
    [status] => dissapproved
)

Ответы [ 5 ]

0 голосов
/ 13 февраля 2019

В приведенной выше модели запроса измените $ queryc на $ query как

if ( $queryc->num_rows() > 0 ) Instead if ( $query->num_rows() > 0 )
0 голосов
/ 12 февраля 2019

попробуйте это,

        $i=0;
        foreach ($rows as $col) {
            //below code if you use $query->result();
            if ($col->status == 0) {
                $col->status = "dissapproved";
            } else {
                $col->status = "approved";
            }
            //below code if you use $query->result_array();
            if ($col['status'] == 0) {
                $rows[$i]['status'] = "dissapproved";
            } else {
                $rows[$i]['status'] = "approved";
            }
            $i++;
        }
        echo'<pre>';print_r($rows);die;

Пожалуйста, прочитайте сначала прокомментированную часть

0 голосов
/ 11 февраля 2019
     foreach ($rows as $rown)
        {

            if($rown['status']=="0")
            {
               $rown['status'] = "dissapproved"; 
            }
            else
            {
               $rown['status'] = "approved";
            }
           $newEntry =$rown;
        }
0 голосов
/ 11 февраля 2019

Вы заменяете свой массив $newEntry внутри цикла.Вот почему вы получаете только один результат.Попробуйте код ниже.

 if ($query->num_rows() > 0) {
    $rows = $query->result_array();
    $newEntry = array();
    foreach ($rows as $rown) {
        if ($rown['status'] == "0") {
            $rown["status"] = "dissapproved";
        } else {
            $rown["status"] = "approved";
        }
        $newEntry[] = $rown;
    }
}

Просто замените $rown['status'] новой строкой approved / dissapproved и добавьте ее в свой массив $newEntry

0 голосов
/ 11 февраля 2019

поменяйте ваш цикл на этот, надеюсь, он будет работать для вас.

foreach ($rows as $rown)
            {
                $newEntry = $rown;
                if($rown['status']=="0")
                {
                    $newEntry["status"][] = "dissapproved";
                }
                else
                {
                    $newEntry["status"][] = "approved";
                }
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...