4 つのテキスト フィールドを持つ html フォームを取得してデータベースを検索し、その中の関連データを探して表示する方法について誰かアドバイスをいただけますか?
基本的に、このフォームは完全に入力する必要はありません。ユーザーは 1 つまたは 2 つのフィールド (例: first_name と last_name) に入力するだけでよく、モデルはユーザーのエントリに関連する他の 2 つの欠落フィールドを検索することになっています。
検索操作を機能させるには、少なくとも 1 つのフィールドに入力する必要があります。このフィールドは、4 つのいずれかになります (ランダム)。フィールドの名前は次のとおりです。
名 姓 部署名
データベースには、必要な情報を含む 3 つのテーブルがあります。それらは次のとおりです。
departments(dept_no, dept_name) 従業員(emp_no, first_name, last_name) title(従業員番号, title)
それらのすべてが同じ主キーを共有しているわけではないため、データベースには「部門」テーブルを「従業員」テーブルにリンクする別のテーブルがあります。
(departments_employees) => dept_emp(emp_no, dept_no)
以下の私の model.php ファイルは、いくつかのデータを検索するためにこれらすべてのテーブルを使用しますが、これまでのところ、この関数は「firstname」エントリに一致するデータのみを検索し、残りの入力フィールドは無視されます。
<?php
class Emp_model extends CI_Model {
function find_dept()
{
$this->db->select('employees.first_name, employees.last_name, departments.dept_name, titles.title');
$this->db->where('last_name', $this->input->get('lastname'));
$this->db->join('dept_emp', 'dept_emp.emp_no = employees.emp_no');
$this->db->join('departments', 'departments.dept_no = dept_emp.dept_no');
$this->db->join('titles', 'titles.emp_no = employees.emp_no');
$query = $this->db->get('employees');
if($query->num_rows > 0)
{
return $query->result();
}
else
{
redirect('find');
}
}
}
?>
私のビューは結果をテーブルに表示するので、今のところすべてエラーなしで動作しています。何時間も研究した後、私はこれを行う方法を思いつくことができません。誰かが私に従うことができるアイデアや同様のチュートリアルを持っている場合は、私に知らせてください! とても感謝しています!ありがとう :)
私が自分自身を明確にしなかった場合、またはさらに情報が必要な場合は、お知らせください!