-1

基本的に、ユーザーが2つの変数$noと$firstを入力できるフォームを表示することで機能しますが、両方のフィールドに入力した場合にのみ結果を表示することができます。動作する必要があるので、1つの変数を入力すると、結果が表示されます。

ある種のORステートメントを使用できると思いましたが、それを実装する方法がわかりません。どんな助けでもありがたいです、そしてそれが十分に明確でないならば、私はcodeigniterに関してはかなり新しいです。

コントローラ

public function query()

{

$no = $this->input->post('no');
$first = $this->input->post('first');
$this->load->model("test");
     $data['query']=$this->test->query($no,$first);
    $this->load->view('query',$data);

}

モデル

function query($no, $first)
{

 return $query = $this->db->get_where('table', array('no' => $no,
 'first' => $first ))->result();

}

意見

 <?php foreach($query as $row): ?>
<tr> 
<td><?php echo $row->no; ?></td>
<td><?php echo $row->date; ?></td>
<td><?php echo $row->first; ?></td>


</tr>
<?php endforeach; ?>
4

3 に答える 3

1

最初にwhere句を準備してみてください

function query($no = "", $first = "")
{
 $response = array();
 if($first != "" || $no != ""){
  $where = "";
  if($no == "") $where = 'first = '.$first;
  if($first == "") $where = 'no = '.$no;
  if($first != "" && $no != "") $where = 'no = '.$no.' AND first = '.$first;
  $fetch = $this->db->where($where)->from('table')->get();
  if($fetch->num_rows() > 0) $response = $fetch->result_array();
 }
 return $response;
}

私があなたが望むアイデアを得ることを願っています。

于 2012-12-05T02:27:49.340 に答える
0

WHEREあなたはあなたの議論を分離する必要があります:

function query($no, $first)
{
     $this->db->select();
     $this->db->from('table');
     $this->db->where('no', $no);

     if (!empty($first))
     {
         $this->db->or_where('first', $first); // or use `and_where`
     }
     return $query = $this->db->get()->result();
}

ソース:http ://ellislab.com/codeigniter/user-guide/database/active_record.html

于 2012-12-04T20:08:50.697 に答える
0
function query($no = '%', $first = '%')
{
$this->db->where("'no' = $no OR 'first' = $first");
$query = $this->db->get('table');
if($query->num_rows() >= 0)
{
    $return $query->result();
}
}

値をデフォルト値としてワイルドカードでフィードする場合は、どちらかを空にすることができます(実際、両方を空にしてすべての結果を返すことができます)。次に、whereステートメント全体を二重引用符で囲みます。

文字列が空の場合にすべての結果を返さない場合は、ワイルドカードを指定する必要はありませんが、空の結果または返されないものがないかどうかをどこかでチェックする必要があります。

于 2012-12-04T22:34:26.983 に答える