这是我的模型,它在我只查询一个表时有效:
function cari_username()
{
$username = $this->input->post('username');
$this->db->like('username',$username);
$data = $this->db->get('user');
return $data;
}
我需要的是连接多个表中的数据,但现在我的代码失败了:
function cari_username()
{
$this->db->from('user');
$username = $this->input->post('username');
$data = $this->db->query("SELECT * FROM (SELECT user.id_user,mahasiswa.nama,user.password,user.username
FROM (`mahasiswa`)
LEFT JOIN `pendaftaran_anggota` ON `pendaftaran_anggota`.`nim` = `mahasiswa`.`nim`
LEFT JOIN `anggota` ON `pendaftaran_anggota`.`id_anggota` = `anggota`.`id_anggota`
LEFT JOIN `user` ON `user`.`id_user` = `anggota`.`id_user` UNION
SELECT pelatih.id_user, pelatih.nama,user.password,user.username FROM (`pelatih`)
LEFT JOIN `user` ON `user`.`id_user` = `pelatih`.`id_user` UNION
SELECT admin.id_user, admin.nama, user.password,user.username FROM (`admin`)
LEFT JOIN `user` ON `user`.`id_user` = `admin`.`id_user`) userdata WHERE `username` LIKE username
ORDER BY `userdata`.`id_user`
");
return $data;
}
请告诉我如何更改查询以解决此问题。
谢谢。
最佳答案
您的脚本中有 2 个错误:
首先:
WHERE username LIKE username
将不起作用,因为像任何 php 变量一样的用户名应该是 $username
第二个:
mysql不知道$username是哪种变量,但我们知道它是一个字符串。因此,您需要将其放在单引号内:
WHERE `username` LIKE '$username'
关于php - 使用 codeigniter 将变量传递给 SELECT 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23723480/