首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Codeigniter和Dwoo中显示同名MySQL数据库字段的多个值

在Codeigniter和Dwoo中显示同名MySQL数据库字段的多个值
EN

Stack Overflow用户
提问于 2010-07-18 04:35:38
回答 3查看 3.2K关注 0票数 1

我正在构建一个web应用程序,并选择在我的应用程序中使用与Wordpress类似的表名和字段名。我的意思是,我有一个用户表和一个类似于Wordpress工作原理的用户表。

请原谅我把这个问题说得太大了,我在这个问题中选择了尽可能多的描述性。

usermeta表具有以下表值;

umeta_id

user_id

meta_key

meta_val

作为示例,我的usermeta表中有以下数据;

user_id =1

meta_key = first_name

meta_value = 'dwayne

user_id =1

meta_key = last_name

meta_value =查林顿

在我的users表中,我有以下示例数据;

ID =1

user_login =管理员

user_pass = ui3h423h4o82374

user_email = test@test.com

基本上,我想要做的是使用下面的连接,这似乎是一种工作,某种程度上:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$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回显保存数据的变量时,它在使用query时不显示重复的查询内容,但在使用result_array时显示重复的内容(几乎就像它在usermeta表上循环了几次一样)。

我使用这个数据库查询的其中一个页面列出了数据库中的所有客户端,然后从usermeta表中获取匹配的数据。因此,我的问题是如何访问这两个表中的数据,然后使用foreach in my view模板在应用程序中显示这些数据?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-19 08:49:23

你知道joins是怎么工作的吧?

通过将元数据连接到用户,将对您拉出的每个元数据条目重复该用户。

这可以在从数据库中提取数据后使用foreach来避免,或者通过将查询拆分为两个查询来避免。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$user = $this->db
    ->select('ID, user_login, user_email, user_status AS status')
    ->where('ID', $id)
    ->get('wolf_users')
    ->row_array();

if(!$user)
{
    return FALSE;
}

$user['meta'] = $this->db
    ->select('meta_key, meta_value')
    ->where('user_id', $id)
    ->get('wolf_usermeta')
    ->result_array();

return $user;

以下是一些常见的MySQL要点和提示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wolf_users.ID, wolf_usermeta.user_id AS ID

不需要,您只需选择用户ID一次。第二个select将覆盖第一个select,后者当然是相同的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$db->select('wolf_usermeta.meta_value AS meta_value', FALSE);

您不需要这样做,表名将从结果中删除,因此重命名它们是没有意义的。

祝好运!

票数 2
EN

Stack Overflow用户

发布于 2010-07-18 09:13:54

在给定样本数据的情况下,您可能希望出现两行;我不知道这是否是您所说的“重复数据”的意思。这些行应该不同,因为它们的meta_key和meta_value具有不同的值。

如果这些列中的行具有相同的值,那么您是否检查了user_meta表或user表,以检查这两个表中是否有重复的行。您的表是否具有唯一键约束?

我看不出您指定的where子句会影响查询,因为它与连接条件相同。

票数 0
EN

Stack Overflow用户

发布于 2010-07-18 23:55:57

我已经检查了两个数据库表,都没有找到重复的行。我删除了where子句,因为我注意到join实际上做了同样的事情,而且在那里使用它是多余的。

我不可能弄清楚这里发生了什么。从我所看到的情况来看,我在连接中做的一切都是正确的,并且没有理由在查询输出中多次显示行(尽管数据库中没有重复的行)。有没有一种更好的方法可以使我的表结构更容易呢?

我正在构建的应用程序需要某种类型的自定义字段功能,比如我当前的usermeta表,它允许我在一个单独的表中执行操作,以保持所有内容的整洁和分离。

我也没有唯一键约束,将一个字段设置为唯一键会导致问题吗?我在考虑让我的user_login (用户名字段)成为一个唯一的键,以防止重复的名字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3274327

复制
相关文章
(六·)可选的对象属性类型
我们上一章节中定义的对象属性,使用的时候必须要包含定义的属性,否则就会报错,那么如果在我们开发中,有些属性不是必须的怎么办呢?
老怪兽
2023/02/22
1.3K0
swift 可选类型笔记
       晚上十一点半了,看书累了,原本想睡了的,想了想,还是把刚看的总结一下,把这篇笔记写了吧。广州下雨,真特么的冷。。好了,废话不说了,说正题说说Swift可选类型。 先定义一个变量: var string="zhangxu"   想想这个变量要强转成 Int 类型的会怎样? // var Zint: int = string.toint() 这样子肯定是不行的,没发转换成 Int 类型的,那有没有想过 Zint 的值会是什么呢? 这时候我们今天的主角,可选类型就登场了! var Zint
Mr.RisingSun
2018/01/09
6750
iOS:swift :可选类型
import UIKit /*: 可选类型 * 可选类型表示变量可以有值, 也可以没有值 * C 和 Objective-C 中并没有可选类型这个概念 * Swift中只有可选类型才可以赋值为nil
用户1941540
2018/05/11
1.2K0
python的实例_类_静态方法—特殊函数—状态码
以某
2023/03/07
4750
python的实例_类_静态方法—特殊函数—状态码
python 参数可选的装饰器
from functools import wraps, partial import logging
用户5760343
2019/12/12
1K0
Python 中的枚举类型
你好,我是 征哥,今天分享一下 Python 中的枚举类型,为什么需要枚举类型,及如何使用。
somenzz
2022/10/25
9590
Python 中的异常类型
Python中的异常类型 异常类型集合 异常名称 说明 Exception 通用异常类型(基类) ZeroDivionError 不能整除0 AttributeError 对象没有这个属性 IOError 输出输出操作失败 IndexError 没有当前索引 异常名称 说明 KeyError 没有这个键值(Key) NameError 没有这个变量(未初始化对象) SyntaxError Python语法错误 SystemError 解释器的系统错误 ValueError 传入的参数错误 代码 # co
Zkeq
2022/05/18
9840
Python中的枚举类型
>>> from enum import Enum #导入模块中的类 >>> class Color(Enum): #创建自定义枚举类 red = 1 blue = 2 green = 3 >>> Color.red #访问枚举类的成员 <Color.red: 1> >>> type(Color.green) #查看枚举类成员的类型 <enum 'Color'> >>> isinstance(Color.red, Color) True >>> x = dict() >>>
Python小屋屋主
2018/04/16
1.2K0
python中的时间类型
时间类型是编程语言中经常使用到的,且在日常生活中也常用到。本文将介绍几种时间库的常用方法,以满足日常编程的需要,主要涉及的库有:time、datetime中的time类型。
python数据可视化之路
2023/02/23
2.2K0
Python中的数组类型
Python没有提供内置的数组类型,但是通过标准库array提供了array类支持数组的创建与使用,可以创建的数组类型包括整数、实数、Unicode字符等等,可以使用help()函数查看更完整的类型列表。 >>> from array import array >>> s = "Hello world" >>> sa = array('u', s) #创建可变字符串对象 >>> print(sa) array('u', 'Hello world') >>> print(sa.tostring())
Python小屋屋主
2018/04/16
3.9K0
Python中的布尔类型
布尔类型还可以与其他数据类型进行逻辑运算,Python规定:0、空字符串、None为False,其他数值和非空字符串为True。
py3study
2020/01/09
1.7K0
python静态类型检查工具mypy
mypy 是 Python 的一个可选静态类型检查器,旨在结合动态(或“鸭子”)类型和静态类型的优点。mypy 将 Python 的表达能力和便利性与强大的类型系统和编译时类型检查相结合。mypy 类型检查标准 Python 程序;使用任何 Python VM 运行它们,基本上没有运行时开销。
zy010101
2022/05/05
8800
[oeasy]python0050_动态类型_静态类型_编译_运行
动态类型_静态类型 回忆上次内容 上次了解了 帮助文档的 生成 开头的三引号注释 可以生成 帮助文档 文档 可以写成网页 python3 本身 也有 在线的帮助手册 目前的程序 提高了 可读性 有什么方法 可以让程序 更可读么?🤔 变量名 首先 在变量名上想办法 名字 本身就有某些含义 具有某些可读性 可以把 a 换成 apple :4,10s/a/apple/gc 过程中需要用Y/n进行确认 b 换成 banana :11,17s/b/banana/
oeasy
2023/05/09
3820
[oeasy]python0050_动态类型_静态类型_编译_运行
python里[::-1]_python中的数组类型
当j缺省时,默认为len(alist), 即a[1:]相当于a[1:len(alist)]
全栈程序员站长
2022/09/22
1.5K0
python中的数据类型
Python 支持三种不同的数字类型整型(int) - 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。布尔(bool)是整型的子类型。
用户7737280
2021/11/10
1K0
python中的强制类型转换
python内提供了几种称为强制类型转换的函数,可以将一个变量的类型强制转换为另一种类型。比如,整型->浮点型,列表->元组。
matinal
2023/10/13
3740
Python 函数中的参数类型
Python 中函数的参数类型比较丰富,比如我们经常见到 *args 和 **kwargs 作为参数。初学者遇到这个多少都有点懵逼,今天我们来把 Python 中的函数参数进行分析和总结。
码农小胖哥
2020/02/24
3.3K0
通俗的方式理解动态类型,静态类型;强类型,弱类型
引言 今天和一个朋友讨论 C++ 是强类型还是弱类型的时候,他告诉我 C++ 是强类型的,他和我说因为 C++ 在写的时候需要 int,float 等等关键字去定义变量,因此 C++ 是强类型的,我告诉他 C++ 是弱类型的他竟然还嘲笑我不懂基础。 我又尝试去问了另外一个同学 Python 是强类型还是弱类型的时候,得到的竟然是弱类型,就因为定义变量没有 int,float! 然后我想找一些网上的资料试图告诉他们他们是错的(我是对的),结果发现网上的资料大多为了严谨结果把简单的问题(其实并不简单)说的很
桃翁
2018/06/27
2.3K0
TypeScript中的可选属性和只读属性
可选属性 接口里的属性不全都是必需的。 有些是只在某些条件下存在,或者根本不存在。 例如给函数传入的参数对象中只有部分属性赋值了。带有可选属性的接口与普通的接口定义差不多,只是在可选属性名字定义的后面
孙亖
2018/06/07
2.9K0
python中的类型和对象
type(list)查看list是由谁实例化的 或者list.__class__
py3study
2020/01/09
1.3K0
python中的类型和对象

相似问题

在Mac 10.11.6上失败

12

Xcode 8:无法接受OS X EL Capitan 10.11.6上的许可协议

11

不可接受条件

21

WordPress登录不可接受

31

RestEasy 406不可接受

11
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文