2017-08-02 38 views
0

我有三個表:如何通過ID顯示?笨

活動

EVID - PK

EVNAME

evdate

USERS

事件ID - FK

用戶ID - PK

用戶名

TIME_SIGN

用戶ID - FK

TIMEID - PK

timeDT


我想誰都有特定的事件ID

因此,在我以前的觀點有一個按鈕被點擊查看註冊用戶的列表中的用戶的記錄該特定事件。

控制器的文件:events.php(指數)

function index() 
{ 
    $data['events'] = $this->model_events->getusersbyid(); 
    $this->load->view('viewEvents', $data); 
} 

查看文件:viewEvents.php

<?php foreach ($events as $event): ?> 
       <div class="col-sm-6 col-md-4" style="width:200px; height:200px;"> 
       <div class="thumbnail"> 
        <img src="<?php echo base_url(); ?>assets/images/eventi.png" alt="image-only"> 
        <div class="caption"> 
        <h3><?=$event->eventID;?></h3> 
        <h3><?=$event->eventName;?></h3> 
        <h4><?=$event->eventDate;?></h4> 
        <a href="<?php echo base_url()."index.php/events/showRegList/".$event->eventID; ?>" class="btn btn-primary" role="button">View Users</a> 
        </div> 
       </div> 
       </div> 
     <?php endforeach; ?> 

現在這個部分:

<a href="<?php echo base_url()."index.php/events/showRegList/".$event->eventID; ?>" class="btn btn-primary" role="button">View Users</a> 

我試圖讓事件的ID。目前,我只有2個活動和3個用戶。在Event1中有User1和User2,在Event2中只有User3。但是顯示器中會發生什麼,它會顯示所有用戶。在Event1和Event2視圖中。

這是我的視圖文件顯示記錄的模型。我錯過了什麼或者我的代碼有什麼問題?

模型文件:model_events.php(display_table)

function display_table() 
{ 
     $this->db->select("events.eventID, users.id, users.event_id, CONCAT(lname, ', ', fname, ' ', mname) AS name, users.position, time_sign.indexuser, time_sign.timein, time_sign.timeout"); 
     $this->db->from('events'); 
     $this->db->join('users', 'users.event_id = events.eventID', 'LEFT'); 
     $this->db->join('time_sign', 'time_sign.indexuser = users.id', 'LEFT'); 
     $query = $this->db->get(); 
     return $query->result(); 
} 

這是列表的視圖:

<?php foreach ($events as $event): ?> 
      <tr> 
       <td class="hidden"><?=$event->id;?></td> 
       <td><?=$event->name;?></td> 
       <td><?=$event->position;?></td> 
       <td><?=$event->timein;?></td> 
       <td><?=$event->timeout;?></td> 
       <td width="100px"> 
        <a href="<?php echo base_url()."index.php/tabledisplay/recTime/".$event->id; ?>"> 
         <button type="submit" class="btn btn-success" name="time-in" style="margin:3px">Sign In</button> 
        </a> 
        <a href="<?php echo base_url()."index.php/tabledisplay/recOut/".$event->id; ?>"> 
         <button type="submit" class="btn btn-danger" name="time-in" style="margin:3px">Sign Out</button> 
        </a> 
       </td> 
       <td> 
        <a href="<?php echo base_url()."index.php/events/show_recid/".$event->id; ?>"> 
        <button type="button" class="btn btn-info" aria-label="Left Align"> 
        <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> 
         </button></a> 
        <a href="<?php echo base_url()."index.php/events/delete/".$event->id; ?>"> 
        <button type="button" class="btn btn-danger" aria-label="Left Align"> 
        <span class="glyphicon glyphicon-trash" aria-hidden="true"></span> 
         </button></a> 
       </td> 
      </tr> 
      <?php endforeach; ?> 

而這是用於顯示列表,所述控制器:事件。PHP

(我把下面的評論,因爲這是我得到的ID的想法,但不工作)

function showRegList() 
{ 
    $data = array(); 
    $id = $this->uri->segment(3); 
    //$evID = $this->model_events->getusersbyid(); 
    $data['events'] = $this->model_events->display_table(); 
    $this->load->view('table_view', $data); 
} 

謝謝。

回答

3

如果我理解你問的是正確的,我認爲你只需要在模型中爲你的SQL添加一個where子句,並從控制器腳本中傳遞事件ID給它。

首先調整Events.php控制器腳本。

function showRegList() 
{ 
    $data = array(); 
    $id = $this->uri->segment(3); 
    //$evID = $this->model_events->getusersbyid(); 
    $data['events'] = $this->model_events->display_table($id); 
    $this->load->view('table_view', $data); 
} 

二,model_events.php。你將會返回一切,因爲你的陳述中沒有where子句。

function display_table($event_id) 
{ 
    $this->db->select("events.eventID, users.id, users.event_id, CONCAT(lname, ', ', fname, ' ', mname) AS name, users.position, time_sign.indexuser, time_sign.timein, time_sign.timeout"); 
    $this->db->from('events'); 
    $this->db->join('users', 'users.event_id = events.eventID', 'LEFT'); 
    $this->db->join('time_sign', 'time_sign.indexuser = users.id', 'LEFT'); 
    $this->db->where('events.evid',$event_id); 
    $query = $this->db->get(); 
    return $query->result(); 
} 

希望能讓你走上正軌。

+0

10秒比我快。這將工作 – GeorgeGeorgitsis

+0

哦,我非常感謝你,我完全忘記了WHERE CLAUSE這麼愚蠢的我大聲笑,並感謝指出傳遞ID本身的函數參數。這工作! – Distro

1

試試這個代碼活動控制器

function showRegList() 
{ 
    $data = array(); 
    $id = $this->uri->segment(3); 
    $data['events'] = $this->model_events->display_table($id); 
    $this->load->view('table_view', $data); 
} 

模型文件:model_events.php(display_table)

function display_table($id) 
    { 
      $this->db->select("events.eventID, users.id, users.event_id, CONCAT(lname, ', ', fname, ' ', mname) AS name, users.position, time_sign.indexuser, time_sign.timein, time_sign.timeout"); 
      $this->db->from('events'); 
      $this->db->join('users', 'users.event_id = events.eventID', 'LEFT'); 
      $this->db->join('time_sign', 'time_sign.indexuser = users.id', 'LEFT'); 
      $condition=array("events.eventID"=>$id) 
      $this->db->where($condition); 
      $query = $this->db->get(); 
      return $query->result(); 
    } 
+0

$ this-> db-> where(「events.eventID = $ id」);此行會產生此錯誤:'where子句'...中的未知列'$ event_id',因爲它將其讀取爲列而不是傳遞的參數。不管怎麼說,還是要謝謝你。 – Distro

+0

我修改了我的代碼現在就試用它。 –

+0

消息:語法錯誤,意外的'=>'(T_DOUBLE_ARROW) 好吧,這是您修改後的代碼的結果。操作員不正確。標記爲正確的答案可能有所幫助。 – Distro