【问题标题】:Getting only first rows AUTO_INCREMENT column value - Codeigniter仅获取第一行 AUTO_INCREMENT 列值 - Codeigniter
【发布时间】:2016-03-09 07:16:53
【问题描述】:

这是我的 Codeigniter 应用程序中的代码,我试图通过它的 id 获取 location
问题是我在检索数据时无法获得一致的结果。

型号

function get_location($id)
{
    $this->db->select('locations.id, locations.name_ka, locations.text_ka, locations.keyword_ka, locations.region, locations.latitude, locations.longitude, locations.notes_ka, locations.description_ka, locations.recomendation, locations.img, locations.nature, locations.culture, locations.resort, regions.region_type, regions.region_name_ka, resort.resort_name_ka, nature.nature_name_ka, culture.culture_name_ka, gallery.id, gallery.post_id, gallery.img_link, gallery.gallery_name_ka')
        ->from('locations','id=$id')
        ->join('regions', 'regions.id = locations.region','left')
        ->join('culture', 'culture.id = locations.culture','left')
        ->join('resort', 'resort.id = locations.resort','left')
        ->join('nature', 'nature.id = locations.nature','left')
        ->join('gallery', 'gallery.post_id = locations.id','left')
        ->where('locations.id='.$id);
        $queryo = $this->db->get();
        return $queryo->row_array();
}

控制器

function details($id){
    $this->load->view('templates/head');
    $this->load->view('templates/header');      
    $details = array(
      'location' => $this->Location_model->get_location($id)
    );
    $this->load->view('one_location', $details);         
     $this->load->view('templates/end');
 }

还有一个问题:它只在第一行获得“id”。对于其他记录,获取所有内容,但不是 id。说'id' = NULL;

输出示例

1st row: array(22) { ["id"]=>string(1) "1" ["name_ka"]=>string(28) "მწვანე ტბა"...
2nd row: array(22) { ["id"]=> NULL ["name_ka"]=> string(37) "ბაზალეთის ტბა"...
49th row:array(22) { ["id"]=> NULL ["name_ka"]=> string(59) "სახლ-მუზეუმი, მუზეუმი, "

我似乎找不到问题所在。

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    这是因为多个表中的 id 重复...

    使用这样的代码:

    $this->db->select('locations.id as location_id, gallery.id as gallery_id');
    

    【讨论】:

      【解决方案2】:

      试试这个

      型号

      function get_location($id)
      {
          $this->db->select('locations.id, locations.name_ka, locations.text_ka, locations.keyword_ka, locations.region, locations.latitude, locations.longitude, locations.notes_ka, locations.description_ka, locations.recomendation, locations.img, locations.nature, locations.culture, locations.resort, regions.region_type, regions.region_name_ka, resort.resort_name_ka, nature.nature_name_ka, culture.culture_name_ka, gallery.id, gallery.post_id, gallery.img_link, gallery.gallery_name_ka')
              ->from('locations')
              ->join('regions', 'regions.id = locations.region','left')
              ->join('culture', 'culture.id = locations.culture','left')
              ->join('resort', 'resort.id = locations.resort','left')
              ->join('nature', 'nature.id = locations.nature','left')
              ->join('gallery', 'gallery.post_id = locations.id','left')
              ->where('locations.id',$id);
              $queryo = $this->db->get();
              return $queryo->row_array();
      }
      

      【讨论】:

        猜你喜欢
        • 2012-06-03
        • 1970-01-01
        • 2014-09-09
        • 2018-04-07
        • 1970-01-01
        • 1970-01-01
        • 2014-10-04
        • 2013-06-23
        相关资源
        最近更新 更多