2014-06-24 23 views
-3

我目前正在通过Joomla(创建模块)创建一个仅为成员的网站。 当会员登录时,我希望他们能够看到他们的点数(想想它像一个航空公司传单点数站点),这是独一无二的。我已将这些点存储在数据库的表中。将数据库行与登录用户关联

我有两个表:
#__users(基本的用户表)
#__smiles_users(此存储的用户名,点等等等等)

两个表具有一个类似的列,这是“用户名”。

我认为在MYSQL查询中这样做是明智的做法。

连接到MySQL
发现,被记录在通过#__users
查找#__smiles_users表
回声结果是特定的行中的匹配用户名的用户名(包含正确的用户名)

我已连接到MYSQL,回显结果,但我不得不指定WHERE函数。

+1

这是一个很好的故事。谨慎阐述你的问题或问题? – ScottMcGready

+0

我很确定表名中不允许有'#'字符('#'在SQL中启动注释)。另外,为什么您的表名称前面加两个下划线? – Nathan

+0

#__在joomla,当你查询一个表格时,你用#__ – marc180292

回答

0

没有做到这一点两种主要方法有:

  1. 您可以执行两个单独的查询为每个表,并通过PHP关联数组加入他们的行列:

    SELECT * FROM `__users` WHERE `username` = ? 
    

    并存储结果一个变种:

    $user = $result->fetch(); 
    

    然后做第二个查询其余数据的苏CH用户:

    SELECT * FROM `__simles_users` WHERE `username` = ? 
    

    而且编程加入数据是这样的:

    $user_smiles_data = $result->fetch(); 
    foreach($user_smiles_data as $key => $value) { 
        $user[$key] = $value; 
    } 
    
  2. 或者是这样的,如果你不想执行两个不同的查询:

    SELECT * FROM `__users` 
    INNER JOIN `__smiles_users` 
    ON `__users`.`username` = `__smiles_users`.`username` 
    

    这合并两个表username字段在查询时间。结果将包括同一个username上单个行上两个表的所有字段。

+0

嗨arielnmz。感谢您的迅速回复。我理解你的答案,我相信在“合并表格”时这将是一个很好的途径。 纠正我,如果我错了。但是上面的代码是否定义了登录到网站的用户? – marc180292

+0

然后,您应该在任何定义了“logged”状态的表上添加一列,并查询“username”和所需的记录状态。如果你不能这样做,那么你需要另一种方法来首先知道用户是否登录,以及它的“用户名”。 – arielnmz

+0

我一直在做更多的研究,$ _SESSION会是更好的替代方案吗?当将表连接在一起时,你已经回答了我的问题。但是我觉得如果我有一个“登录”列,有时候如果有两个人登录,它可能会搞砸了? – marc180292

-1

您可能要创建从一个表到另一个表的外键。

例如,在SQL:

ALTER TABLE #__smiles_users 
ADD FOREIGN KEY (username) 
REFERENCES #__users(username) 

这将创建从一个表到其他的链接,以确保数据的完整性。

+0

尽管你在陈述中是正确的,但原始问题(如现状)在试图达成的目标上确实不清楚,并不是真正的答案,在评论部分更好,直到提问者澄清。 – ScottMcGready

+0

嗨ktbird。尽管这不能回答这个问题。它激发了我正在研究的其他事物的想法。谢谢 – marc180292

+0

我同意斯科特,但我无法发表评论。很高兴帮助Marc。 – ktbird7

相关问题