2015-12-16 114 views
1

database error从数据库搜索数据

我想显示来自数据库的数据。我创建了一个搜索表单,但显示结果时出现错误。附加错误的屏幕截图。

在数据库中,包含职员名称和分支。分支下拉列表中,我从数据库中获取它。分支的例子是Faculty计算机科学和数学。

我认为错误在模型中。 谁能帮我解决我的代码

控制器

function filter_directory() 
    { 

    $search_term = $this->input->post('search_term'); 
    $search_branch = $this->input->post('search_branch'); 

    $data['search_term'] = $search_term; 
    $data['search_branch'] = $search_branch; 

    $data['branch_name'] = $this->direktori_model->get_branch_list(); 

    $data['search_term'] = $this->input->get('search_term'); 
    $data['search_branch'] =$this->input->get('search_branch'); 

    $data['results'] = $this->direktori_model->get_directory_results($data['search_term'], $data['search_branch'], $config['per_page'], $page); 

    $this->load->view('directory/directory_list', $data); 
} 

模型

function get_directory_results($search_term, $search_branch, $limit=10, $offset=0) 
{ 
    $sql = "SELECT * FROM Staff_Profile 
    WHERE Name LIKE '%$search_term%' 
    AND Branch = {$search_branch} 
    AND Enabled = 'Y' 
    AND Lang ='BM' 
    ORDER BY ID ASC 
    OFFSET {$offset} ROWS 
    FETCH NEXT {$limit} ROWS ONlY"; 

    $query = $this->db->query($sql); 
    return $query->result(); 
    } 

VIEW

<?php echo validation_errors();?> 
    <?php echo form_open("direktori/filter_directory", array('method' => 'get'));?> 
    <div class="row collapse"> 
     <div class="medium-4 columns "> 
     <?php echo form_input(array('name' => 'search_term', 'id' => 'search-box', 'value' => $search_term)); ?> 
     </div> 
     <div class="medium-4 columns "> 
     <?php echo form_dropdown("search_branch", $branch_name, "", 'id="branch_id"');?> 
     </div> 
     <div class="medium-4 columns "> 
     <?php echo form_submit('search', 'SEARCH', 'class="button expand"'); ?> 
     </div> 
    </div> 
    <?php echo form_close(); ?> 
+3

错误在哪里? –

+0

@AdarshMPallickal对不起,我附上错误的屏幕截图 –

+0

您使用哪个db驱动程序? – Progrock

回答

0

在您查询,您必须分支之后添加引号

您的疑问:

SELECT * FROM staff_profile 
where name Like '%anuar%' 
and branch = BAHAGIAN KEWAIGAN & PENGURUSAN <-- ERROR 
and enabled = 'Y' and lang = 'BM' 
order by id asc offset o rows fetch next 10 rows only 

固定查询:

SELECT * FROM staff_profile 
where name Like '%anuar%' 
and branch = 'BAHAGIAN KEWAIGAN & PENGURUSAN' 
and enabled = 'Y' and lang = 'BM' 
order by id asc offset o rows fetch next 10 rows only 
+0

我已经尝试过了,附加截图没有错误,但结果没有显示出来 –

+0

@nienahusain:在你的屏幕截图中有一个错误(通过分支值引用修复)。如果你没有结果,请检查你的数据。如果可能,请发布一个数据示例,以便我们分析它们 –

0

错误进来不久的分公司。请把分支放在报价单内。这种格式的模型

function get_directory_results($search_term, $search_branch, $limit=10, $offset=0){ 
    $this->db->order_by('ID','ASC'); 
    $this->db->like('Name',$search_term); 
    $this->db->where('Lang','BM'); 
    $this->db->where('Enabled','Y'); 
    $this->db->where('Branch',$search_term); 
    $query=$this->db->get('Staff_Profile',$limit,$offset); 
    return $query->result(); 
} 

$sql = "SELECT * FROM Staff_Profile WHERE Name LIKE '%$search_term%' AND Branch = '$search_branch' AND Enabled = 'Y' AND Lang ='BM' ORDER BY ID ASC OFFSET {$offset} ROWS FETCH NEXT {$limit} ROWS ONlY";

0

使用笨语法,你可以移植到任何其他BD,并告诉你更容易,你有烦恼。