-6ren">
gpt4 book ai didi

php - 通过 php(CodeIgniter) 中给定的数组从 mysql 表中选择列。

转载 作者:行者123 更新时间:2023-11-29 20:37:03 24 4
gpt4 key购买 nike

我想从 mysql 表中选择列,我已选择名称作为输入值。在我看来,必须选择列名称作为多个输入字段。在此选择选项值等于数据库中“pass_due”表中的列名称。

<form id=""  name=" Passdue "  action="<?=base_url('index.php/Passdue_ctrl/select')?>" method="post">
<div >
<input class="date-picker" id="report_date" name="report_date" value="" placeholder="Select Date"/>
<select multiple="" class="chzn-select" id=" " data-placeholder="Select sections " name="table_feilds">
<option value="" />
<option value="below_1" /> Below month
<option value="month_1_3" /> Month 1-3
<option value="month_3_6" /> Month 3-6
<option value="month_6_9" /> Month 6-9
<option value="over_9" /> Over 9 month
</select>
</div>
<div>
<button type="submit" class="btn btn-mini btn-info">Submit</button>
<button type="reset" id="reset" class="btn btn-mini btn-info">Reset</button>
</div>
</form>

这是我的 Controller 中的功能

Function select (){
$fld_name =$this->input->post('table_feilds');
$reportdate=$this->input->post('report_date');
$report=$this->Passdue_model->get_report_part($fld_name,$reportdate);
If($report){
$this->data['report_part']=$report;
$this->data['fld_name']=$fld_name;
$this->load->view('Passdue_other_view',$this->data);
}
}

在我的模型中是这样的。

function get_report_part1($fld_name,$reportdate)
{
$this->db->select($fld_name);
$this->db->from(‘pass_due’);
$this->db->where('fld_actORinact_date <=',$reportdate);
$query = $this->db->get();
if($query){
return $query->result();
}
}

当我运行此代码时,它会选择表中的所有列,而不仅仅是选定的列。而且它还显示错误为 为 foreach() 提供的参数无效。

最佳答案

您可以使用这个新的模型方法从数据库中检索数据。因此,将此方法插入到您的模型中

function getDetail($tablename = '', $columns_arr = array(), $where_arr = array(), $limit = 0, $offset = 0)
{
$limit = ($limit == 0) ? Null : $limit;

if (!empty($columns_arr)) {
$this->db->select(implode(',', $columns_arr), FALSE);
}

if ($tablename == '') {
return array();
} else {
$this->db->from($tablename);

if (!empty($where_arr)) {
$this->db->where($where_arr);
}

if ($limit > 0 AND $offset > 0) {
$this->db->limit($limit, $offset);
} elseif ($limit > 0 AND $offset == 0) {
$this->db->limit($limit);
}

$query = $this->db->get();

return $query->result();
}
}
//These are include within controller methods

$fld_name =$this->input->post('table_feilds');
//you have to send your columns from your multiple select object as array.
//create column array
$arr_columns=array();
for($i=0,$i<=count($fld_name);$i++){
$arr_columns=array_push($fld_name)
}
$reportdate=$this->input->post('report_date');
//create where array
$arr_where=array('fld_actORinact_date <=' => $reportdate);
//retreive data
$datatable=‘pass_due’;
$report=$this->Passdue_model->getDetail($datatable,$arr_columns,$arr_where,0,0);
var_dump($report);

//finally dump_data set .it return array object.Then loop retrieved object.

然后这将返回您所期望的结果。还想建议您使用通用模型,除非为每个表使用单独的模型。

关于php - 通过 php(CodeIgniter) 中给定的数组从 mysql 表中选择列。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38759421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com