我正在尝试将我的用户从数据库连接到运行 XAMPP 的浏览器。我从使用 users_index.php 文件中的以下代码创建的列表中选择一个用户 user:
<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>
之后,我从列表中选择用户名,并收到此错误消息:
Not unique table/alias: 'user' In file C:\xampp\htdocs\blog\controllers\users.php, line 28, function view( )
当我进入该行时,这就是我所拥有的:
28: $user_id = get_one("SELECT user_id FROM user NATURAL JOIN user WHERE username='$username'");
我有一个运行 MySql 的数据库,我使用 PMA 通过浏览器访问它。在数据库中,我创建了“用户”表,其中包含“user_id”、“用户名”、“密码”和“已删除”列。
我的目标是:当我从列表中选择一个用户后,它应该显示该用户发布的帖子。
有什么想法吗?
最佳答案
在您的查询中,您只要求一张表,因此联接在这里无关紧要 - 这就是出现别名错误的原因 - 数据库引擎需要第二个表。
对于连接,您需要确保告诉 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。
关于php - 不唯一的表/别名 : 'user' phpmyadmin XAMPP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21385424/