【问题标题】:How to display Name in codeigniter如何在codeigniter中显示名称
【发布时间】:2019-05-29 01:38:52
【问题描述】:

请帮帮我,我想根据sender_idrecipient_id从表中显示用户的名字,我的CodeIgniter中的代码模型和视图怎么做

Tables schema

Data Table users

Data Table Messages

型号

function get_pesan_view(){
    $this->db->from('messages');
    $this->db->join('users', 'users.id = messages.sender_id', 'left');
    $this->db->join('users', 'users.id = messages.recipient_id', 'left');
    $q2 = $this->db->get();
    return $q2->result();
 }

控制器

public function view_pesan()
{
    $data['get_pesan']=$this->Emp_model->get_pesan_view();
    $this->load->view('employee/top');
    $this->load->view('employee/nav', $data);
    $this->load->view('employee/slidbar', $data);
    $this->load->view('employee/pesan', $data);
    $this->load->view('employee/bottom');
}

查看

<?php foreach ($get_pesan as $pesan) { ?>
<strong> Sender : <?php echo $pesan->name ; ?> </strong>
<strong> Recipient : <?php echo $pesan->name ; ?> </strong>
<a> <?php echo $pesan->body ; ?></a>
<?php } ?>

我想在视图中同时显示发件人和收件人的姓名

【问题讨论】:

  • 发件人和收件人姓名不同还是相同?
  • 不要将$data 传递给导航和侧边栏
  • 添加有问题的数据库结构

标签: mysql database codeigniter


【解决方案1】:

控制器

public function get_names(){

  $this->load->model('model_name'); //If not loaded in the autoload.php file
  $names = $this->model_name->all_names();
  $this->load->view('view_file_name', compact('names'));
}

模型中的查询会是这样的

public function all_names(){
  $this->db->select('name');
  $this->db->from('users');
  $this->db->join('messages', 'users.id = messages.sender_id');
  return $this->db->get()->result();
}

要加入recipient_id,请这样做

$this->db->join('messages', 'users.id = messages.recipient_id');

然后使用foreach循环在视图中显示所有names

foreach($names as $row){
   echo $row->name;
}

【讨论】:

【解决方案2】:

型号

    $this->db->select('messages.*,u1.{name of field for username} as sender_name,u2.{name of field for username} as recipient_name');
   $this->db->from('messages');
    $this->db->join('users u1', ' u1.id = messages.sender_id', 'left');
    $this->db->join('users u2', ' u2.id = messages.recipient_id', 'left');
    $q2 = $this->db->get();
    return $q2->result();

查看

<?php foreach ($get_pesan as $pesan) { ?>
<strong> Sender : <?php echo $pesan->sender_name; ?> </strong>
<strong> Recipient : <?php echo $pesan->recipient_name; ?> </strong>
<a> <?php echo $pesan->body ; ?></a>
<?php } ?>

我忘记了您不能多次加入一个故事,因为您需要使用表别名。它会为您工作/只需将名称放在您的数据库中。 它会起作用,否则会与我分享您的表格和错误页面之外的屏幕

【讨论】:

  • 错误号 1066,不是唯一的表/别名:'users'
猜你喜欢
  • 2018-06-11
  • 1970-01-01
  • 2021-05-24
  • 2018-01-04
  • 2012-08-28
  • 2018-07-07
  • 2012-09-02
  • 2019-09-30
  • 1970-01-01
相关资源
最近更新 更多