【发布时间】:2010-07-18 04:35:37
【问题描述】:
我正在构建一个 Web 应用程序,并选择在我的应用程序中使用与 Wordpress 相似的表和字段名称。我的意思是我有一个用户表和一个用户元表,类似于 Wordpress 的工作方式。
请原谅我把这个问题提得这么大,我选择在这个问题中尽可能地描述性。
usermeta 表有以下表值;
umeta_id
用户ID
元密钥
元值
例如,我的 usermeta 表中有以下数据;
user_id = 1
元键 = 名字
meta_value = 'dwayne
user_id = 1
元键 = 姓氏
meta_value = charrington
在我的用户表中,我有以下示例数据;
ID = 1
user_login = 管理员
user_pass = ui3h423h4o82374
user_email = test@test.com
基本上我想做的是使用以下连接,这似乎有点工作,有点:
$db = $this->db;
$db->select('wolf_users.ID, wolf_usermeta.user_id AS ID', FALSE);
$db->select('wolf_users.user_login AS user_login', FALSE);
$db->select('wolf_users.user_email AS user_email', FALSE);
$db->select('wolf_users.user_status AS status', FALSE);
$db->select('wolf_usermeta.meta_key AS meta_key', FALSE);
$db->select('wolf_usermeta.meta_value AS meta_value', FALSE);
$db->from('wolf_users');
$db->join('wolf_usermeta', 'wolf_users.ID = wolf_usermeta.user_id', 'left');
$db->where('wolf_usermeta.user_id = wolf_users.ID');
$q = $db->get();
return $q->result_array();
首先:result_array 似乎从我的数据库中返回了重复数据(这有点奇怪)我是否错误地格式化了我的连接,或者我是否缺少一些东西来防止这种情况发生?仅使用 $q->result() 返回结果似乎停止返回重复数据。
我将 Dwoo 用于我的模板,当我使用 print_r 回显保存数据的变量时,它在使用查询时不显示重复的查询内容,但在使用 result_array 时显示重复的内容(几乎就像它在 usermeta 表上循环一样几次)。
我使用此数据库查询的页面之一是列出数据库中所有客户端的页面,然后从 usermeta 表中获取匹配数据。所以我的问题是如何访问两个表中的数据,然后在我的视图模板中使用 foreach 将其显示在我的应用程序中?
【问题讨论】:
标签: sql mysql database codeigniter join