【发布时间】:2015-07-29 14:01:56
【问题描述】:
所以我有 2 张桌子。
train_information
user_train_information
当有人在表单中提交内容时。它被放入train_information 表中,如下所示:
现在,当人们登录并从选择器中选择火车时。他发生在数据库中:
在另一个页面上,我希望用户看到他们在一段时间内选择的完整列表。所以我运行一个查询:SELECT * FROM user_train_information WHERE user_id=user_id;
这向我显示了表格user_train_information
但是可以在 user_id = user_id 的地方显示 train_information 吗?因为我希望用户显示他添加的火车。
编辑:
我现在拥有的:
function testingggg() {
$sql = "SELECT *
FROM train_information
INNER JOIN user_train_information
ON train_information.train_id = user_train_information.train_id
WHERE user_train_information.user_id = user_id";
$sth = $this->pdo->prepare($sql);
$sth->bindParam("user_id", $_GET["user_id"], PDO::PARAM_INT);
$sth->execute();
return $sth->fetchAll();
}
我在这里叫我:
<?php
$summary = $database->testingggg();
?>
<?php
foreach ($summary as $result){
echo $result['train_name'];
}
?>
我得到错误:
【问题讨论】:
-
表
train_information没有列user_id! -
Tru @Jens ,但他们都有 train_id 列
-
所以你的问题有点误会。
-
错误信息是关于列的歧义。如果两个表共享一个列名,您需要说明您选择的是哪一个。这是所有列的好习惯。不要使用 "SELECT *" 。但是,虽然表中存在列歧义,但引用的实际错误是未能正确准备查询。再看看 PHP 的 PDO 准备语法。
标签: php mysql sql database mysqli