【问题标题】:Codeigniter list_tables() from a database in a dropdownCodeigniter list_tables() 来自下拉列表中的数据库
【发布时间】:2015-09-11 09:46:17
【问题描述】:

我想知道如何在 CodeIgniter 的下拉列表中列出数据库中的表名。我尝试使用$this->db->list_tables() 并在模型中使用它,就像我想用表中的值填充下拉列表一样。

控制器:

$data['tables'] = $this->model->get_tables();
$this->load->view('view', $data);

查看:

<div class="col-md-2">
  <label class="col-md-8 control-label" for="tabel">Data</label>
  <div class="col-md-12">
   <?php $attributes = 'class="form-control" id="tabel"';
   echo form_dropdown('tabel', $tables, set_value('tables'), $attributes);?>
  </div>
</div>

型号:

function get_tables(){
  $result = $this->db->list_tables();

  $tablelist = array('- Table Lists -');

  foreach($result as $row) {
    return $tables = array($tablelist, $row);
  }
}

它只返回第一个表 [analisis] 和下拉列表中设置为 1 的值 [在检查元素窗口检查它]。

如果我把它改成:

foreach($result as $row) {
  echo $row;        
}

它返回网页顶部的表格数组 [analisistable1table2]。

【问题讨论】:

    标签: php database codeigniter


    【解决方案1】:

    $this->db->list_tables()

    返回一个数组,其中包含所有表的名称 您当前连接的数据库

    所以不需要获取结果。注释这行代码就行了

     $result= $this->db->list_tables();
     //$result = $query->result();// comment no need of it
    

    【讨论】:

    • 它在网页顶部返回一个表名数组,但form_dropdown为空。即使我不在视图中调用/回显它,只需输入 $data['tables'] -&gt; $this-&gt;model-&gt;get_tables(); ,表格名称列表就在那里。喜欢 table1table2table3... 还是谢谢。
    【解决方案2】:
    foreach($result as $row) {
        return $tables = array($tablelist, $row);
    }
    

    因为return,上面的foreach块只迭代了一次,所以$tables的内容只有$tablelist$result的第一个元素。 你为什么不像这样返回$this-&gt;db-&gt;list_tables()

    function get_tables(){
       return $this->db->list_tables();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-04
      • 2020-01-09
      • 1970-01-01
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多