我有三张桌子
student_details
1.ID
2.studentname
3.deptname
4.deptcode
login_details
1.id
2.username
3.password
4.deptcode
dept_details
1.id
2.deptcode
3.deptname
从这些表中我需要检查login_details表中的用户名和密码,另外通过检查值为student_details.deptcode == login_details.deptcode和dept_details.deptcode == student_details.deptcode,从dept_details表中检索deptname。这些概念然后如何在codeigniter中实现这一步骤请帮助某人.. 提前致谢
答案 0 :(得分:0)
在codeigniter中,您可以使用Active Records
执行此操作,也可以通过传递自定义查询,例如
$username="test";
$password="password";
$query="SELECT dd.deptname,sd.studentname FROM dept_details dd
INNER JOIN login_details ld ON (dd.deptcode = ld.deptcode)
INNER JOIN student_details sd ON (ld.deptcode = sd.deptcode)
WHERE ld.username='".$username."' AND ld.password='".$password."' ";
$result=$this->db->query($query)->result();
OR
$this->db->select('dd.deptname,sd.studentname');
$this->db->from('dept_details dd');
$this->db->join('login_details ld', 'dd.deptcode = ld.deptcode');
$this->db->join('student_details sd', 'd.deptcode = sd.deptcode');
$this->db->where('ld.username', $username);
$this->db->where('ld.password', $password);
$result = $this->db->get();
并确保您已在database
中加载了autoload.php
库
$autoload['libraries'] = array("database");
以下是Active record的帮助 希望它有意义
答案 1 :(得分:-2)
表 student_details 和 login_details 应该是一个表。用户可以拥有多个登录详细信息吗? @tomexsans是对的,因为“student_id”是您的唯一ID,您应该将该ID连接到您的桌子上。
我在想这个结构:
表学生:
student_id
student_name
username
password
dept_id
表 dept_details :
dept_id
dept_code
dept_name