不唯一的表/别名:'user'phpmyadmin XAMPP

时间:2014-01-27 15:55:29

标签: php mysql xampp

我正在尝试将我的用户从数据库连接到浏览器,运行XAMPP。我从我在users_index.php文件中使用以下代码创建的列表中选择了一个用户用户:

<div class="list-group">
<?foreach ($users as $user ):?>

    <a href="<?=BASE_URL?>users/view/<?=$user['username']?>" class="list-group-item"><?=$user['username']?></a>

<? endforeach?>

这适用于访问数据库并获取我的用户名,直到我运行包含div的users_view.php文件:

<div>
    <span class="badge badge-success">By <?=$post["username"]?></span>
    <div class="pull-right">
        <?if(!empty($users)) foreach ($users [$post ['post_id']] as $user):?>
    <a href="#"><span class = "label" style="background-color: #5bc0de"><?=$user?></span></a>
    <?endforeach?>
</div>

之后我从列表中选择用户名,它会收到以下错误消息:

  

不唯一的表/别名:'user'   在文件C:\ xampp \ htdocs \ blog \ controllers \ users.php中,第28行,函数视图()

当我进入那条线时,这就是我所拥有的:

28: $user_id = get_one("SELECT user_id FROM user NATURAL JOIN user WHERE username='$username'");

我有一个运行MySql的数据库,我使用PMA通过浏览器访问它。在数据库中,我创建了'user'表,其中包含'user_id','username','password'和'deleted'列。

我的目标是:在我从列表中选择一个用户后,它应该显示该用户发布的帖子。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在你的查询中,你只需要一个表,所以连接在这里是无关紧要的 - 这就是存在别名错误的原因 - 数据库引擎需要第二个表。

对于连接,您需要确保告诉mysql表之间的关系

例如:

SELECT user_id FROM user NATURAL JOIN user ON sometable.username = user.username WHERE user.username='$username'

所以在这种情况下,相关的表格是'sometable'。否则你只需要进行一次表查询:

SELECT user_id FROM user WHERE username='$username' 

根据您的要求,您需要两个表格,一个用于您的用户信息,另一个用于您的“用户发布的帖子”。

“用户发布的帖子”表可能包含post_id(唯一)和user_id。