我正在尝试将我的用户从数据库连接到浏览器,运行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'列。
我的目标是:在我从列表中选择一个用户后,它应该显示该用户发布的帖子。
有什么想法吗?
答案 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。