将数据库行与登录用户关联

时间:2014-06-24 23:38:11

标签: php mysql

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

我有两张桌子:
#__users(基本用户表)
#__smiles_users(这会存储用户名,积分等)

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

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

连接到MYSQL
找出通过#__users登录的用户名 在#__smiles_users表中找到匹配的用户名 回显特定行中的结果(包含正确的用户名)

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

2 个答案:

答案 0 :(得分:0)

有两种主要方法可以实现这一目标:

  1. 您可以为每个表执行两个单独的查询,并通过PHP关联数组将它们连接起来:

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

    并将结果存储到var:

    $user = $result->fetch();
    

    然后对此类用户的剩余数据进行第二次查询:

    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的单行上两个表的所有字段。

答案 1 :(得分:-1)

您可能希望从一个表到另一个表创建外键。

例如在SQL中:

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

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