Невозможно получить частичные данные из базы данных, используя Codeigniter - PullRequest
0 голосов
/ 04 октября 2018

Я очень новый в codeigniter.Это мое первое приложение.В моей базе данных я вставляю empid и deptid.Когда оба они вставлены в таблицу, все данные отображаются.Но я хочу, чтобы когда оба данные отсутствовали в таблице, тогда и все данные показывались пустыми в этом столбце.Если какие-либо данные отсутствуют в таблице, вместо URL удаления отображается кнопка добавления.

controller

public function index() 
{     
    $rows = $this->EmpDept_model->get_empdept();
    $data['recdept'] = $this->EmpDept_model->get_empdept();

    $this->load->helper('url'); 
    $this->load->view('empdept/EmpDept_list',$data); 
}

view

<table class="table table-striped table-bordered" id="dataTables-example">
    <thead>
        <tr style="background-color: #d7ccc8;">
            <th>Employee Name</th>
            <th>Department Name</th>
            <th>Option</th>
        </tr>
    </thead>
    <tbody>
    <?php       
    foreach($recdept as $r)
    { 
        echo "<tr class='odd gradeX'>";
        echo "<td>".$r->empname."</td>"; 
        echo "<td>".$r->deptfname."</td>"; 
        echo " <td> <a data-toggle='tooltip' data-placement='bottom' title='Delete' style='color: #000000;' href = '".base_url()."index.php/empdept/delete/".$r->empdeptid."'>Delete</a></td>";
        /*echo "<td><a data-toggle='tooltip' data-placement='bottom' title='Edit' style='color: #000000;' href = '".base_url()."index.php/emp/edit/".$r->empid."'><span class='glyphicon glyphicon-pencil'></span></a>";
        echo " ||  <a data-toggle='tooltip' data-placement='bottom' title='Delete' style='color: #000000;'  href = '".base_url()."index.php/emp/delete/".$r->empid."'><span class='fa fa-ban fa-1x'></span></a></td>";*/
        echo "</tr>"; 
     } 
     ?>
     </tbody>
 </table>

модель

public function get_empdept()
{
    $this->db->select('ed.empdeptid,e.empname,d.deptfname');
    $this->db->from('empdept ed,empinfo e,deptinfo d');
    $this->db->where('e.empid =ed.empid and d.deptid = ed.deptid');
    $query = $this->db->get();
    return $query->result(); 
}

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Попробуйте этот код:

public function get_empdept()
{
    $this->db->select('ed.empdeptid,e.empname,d.deptfname');
    $this->db->from('empdept ed');
    $this->db->join('empinfo e','e.empid = ed.empid', 'left');
    $this->db->join('deptinfo d','d.deptid = ed.deptid', 'left');
    $query = $this->db->get();
    return $query->result(); 
}

Проверьте, если столбец пуст, чем установите кнопку добавления, в противном случае кнопку удаления:

<table class="table table-striped table-bordered" id="dataTables-example">
    <thead>
        <tr style="background-color: #d7ccc8;">
            <th>Employee Name</th>
            <th>Department Name</th>
            <th>Option</th>
        </tr>
    </thead>
    <tbody>
    <?php       
    foreach($recdept as $r)
    { 
        echo "<tr class='odd gradeX'>";
        echo "<td>".$r->empname."</td>"; 
        echo "<td>".$r->deptfname."</td>";
        if(!empty($r->empdeptid)){
           echo " <td> <a data-toggle='tooltip' data-placement='bottom' title='Delete' style='color: #000000;' href = '".base_url()."index.php/empdept/delete/".$r->empdeptid."'>Delete</a></td>";
         } else {
             echo " <td> <a data-toggle='tooltip' data-placement='bottom' title='Add New' style='color: #000000;' href = '".base_url()."index.php/empdept/add/'>Add</a></td>"; 
         }
         echo "</tr>"; 
     } 
     ?>
     </tbody>
 </table>
0 голосов
/ 04 октября 2018

Вы должны использовать union для достижения этой цели.Но воспламенитель кода не поддерживает объединение

, поэтому вы можете попробовать выполнить следующее.Изменить запрос в модели

$this->db->query("Select empdeptid from empdept union Select empname from empinfo union Select deptfname from deptinfo where empinfo.empid = empdept.empid and deptinfo.deptid = empdept.deptid");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...