【问题标题】:Result data from multiple table codeigniter来自多表codeigniter的结果数据
【发布时间】:2018-08-27 11:00:39
【问题描述】:

型号:

public function show_data_by_tid_pic($postid,$postpic) {
$condtid = "otslm.tid =" . "'" . $postid . "'";
$condpic = "pic.nama =" . "'" . $postpic . "'";
$this->db->select('otslm.*');
$this->db->select('pic.*');
$this->db->from('otslm');
$this->db->join('pic', 'pic.id = otslm.id');
$this->db->where($condtid);
$this->db->where($condpic);
$query = $this->db->get();
if ($query->num_rows() > 0) {
return $query->result(); } else {
return false;
}
}

控制器:

public function inputslm() {
    $postid = $this->input->post('nametid');
    $postpic = $this->input->post('namepic');
    if ($postid != "" OR $postpic != "") {
    $resultid = $this->skejuler_model->show_data_by_tid_pic($postid,$postpic);
    if ($resultid != false) {
    $data['result_display'] = $resultid;
    }
    else {
    $data['result_display'] = "Not Found!";
    }
    }
    else {
    $data = array(
    'tid_error_message' => "TID tidak boleh kosong!",
    'pic_error_message' => "PIC tidak boleh kosong!"
    );
    }
    $data['show_table'] = $this->view_table();
    $this->load->view('front/dashboard', $data);
    }

查看:

if (isset($result_display)) {
            if ($result_display == 'Not Found!') {
            echo $result_display;
            } else {
                foreach ($result_display as $vid) {
                $zlokasi = $vid->lokasi;
            $znama = $vid->nama;
            $znohp = $vid->nohp;
                }
      echo $zlokasi;
      echo "<br>";
      echo $znama;
      echo "<br>";
      echo $znohp;
            }
            }

提交后:

我是 Codeigniter 的新手,试图通过加入包含 2 个字段“nametid”和“namepic”的表来生成数据。我认为代码没有错,存在列,但它总是变成假的(未找到!)。请帮助解决这个问题...非常感谢...

使用 HeidiSQL(发现行数:0),使用 where 子句连接表失败。 Pic 1

使用 HeidiSQL(发现行数:31),不使用 where 子句连接表成功。 Pic 2

【问题讨论】:

  • 代码只使用了 1 个字段“nametid”,然后我通过加入表“otslm”和“pic”添加了一个新的输入字段“namepic”,但结果为 false。
  • $query = $this-&gt;db-&gt;get(); 尝试使用echo $this-&gt;db-&gt;last_query(); 输出您的选择语句后,您应该能够看到完整生成的语句-(ps。您应该以适当的方式使用 where 函数,因为现在您对 sql 注入完全开放 - 尝试像 $this-&gt;where('otslm.tid', $postid);
  • @sintakonte 感谢您的重播和建议,并完成: echo $this->db->last_query();但什么也没产生,并且还按照您的建议更改了 where 函数,但仍然找不到结果。再次感谢。
  • @sintakonte 我的错,我使用带有固定顶部的模板,所以我看不到输出,这是输出: SELECT * FROM otslm JOIN pic ON pic.@ 987654333@ = otslm.id 其中otslm.tid = '550250' 和 pic.nama = 'WAWAN'
  • 看起来不错不是吗? - 我不知道你的表结构,但根据这些信息你应该能够处理你的问题吗?

标签: mysql codeigniter jointable


【解决方案1】:

现在在不使用 JOIN 的情况下成功获取数据,将查询替换为:

$this->db->select('*');
$this->db->from('otslm');
$this->db->from('pic');
$this->db->where('tid', $postid);
$this->db->where('nama', $postpic);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-26
    • 2012-07-25
    • 1970-01-01
    • 2011-10-03
    相关资源
    最近更新 更多