【问题标题】:Assigning a user a different layout via mysql通过 mysql 为用户分配不同的布局
【发布时间】:2012-10-07 05:38:59
【问题描述】:

我正在开发一个具有编辑个人资料详细信息页面的网站。我设置为编辑的选项之一是布局。我正在尝试使用 cookie 和 mysql 查询来控制布局的显示。目前,我在通过表单提交传递用户输入后使用 if 和 else 语句来决定为布局设置哪个 cookie。

然后,在显示配置文件的实际视图配置文件页面上,我再次使用 if else 语句和 mysql 查询(以及设置为用户名的 GET 变量)来决定为该用户调用哪个布局。

这就是问题所在。我在寻找正确的方法时遇到问题 显示为用户选择的布局(带有 sql 查询) 使用 GET 变量调用。

我的用户表是用行名排列的:

id(自动增加) 用户名
名称
年龄
性别 关于我
喜欢
不喜欢
音乐
模板ID

我的模板表是用行名列出的:

template_id(自动增加)
Head_Open
Head_Close
Page_End
日期

我考虑过在两个表上进行某种类型的连接,但我似乎无法弄清楚。我需要它,因此每个用户也被多次添加到模板表中,或者可能只是在模板表中为表中的每个唯一布局更新。

如果有人可以提供帮助,我将不胜感激。

【问题讨论】:

  • 我认为这些“行名”实际上是列名。
  • 你想要什么?当前与用户关联的布局是什么?

标签: php mysql inner-join


【解决方案1】:

您可以按以下方式连接两个表,以获取登录用户的当前布局。

$query = "select t.* from users u, templates t where u.template_id = t.template_id AND u.id = '".$_GET['userid']."'";

【讨论】:

    【解决方案2】:

    查询

    "select tpl.* from users u inner join templates tpl on tpl.template_id = u.template_id where u.name = " + $THE_USER_NAME

    应该返回模板。我假设您确实知道如何获取 THE_USER_NAME 以及如何从返回的行中提取信息。

    【讨论】:

    • 谢谢。在我检查这个线程之前,我刚刚尝试过:SELECT * FROM userprofile, template "." WHERE userprofile.template_id = template.template_id AND userprofile.username ='$u' 似乎奏效了。是的,我知道如何获取用户名以及如何提取信息。 ;P
    • 就是这样,除了您提供的字段名称。但我更喜欢 inner join 语法来明确您的意图,并且在处理许多表时它变得更具可读性。
    猜你喜欢
    • 2015-02-03
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    相关资源
    最近更新 更多