【发布时间】:2016-04-02 03:12:01
【问题描述】:
我有 2 个表 bpi_registration 和 bpi_teamProfile。 bpi_registration 中的字段为:id, id_school, first_name,last_name,email,city,state,country,bpi_teamProfile 表中的字段为 id_team, team_name, id_student1, id_student2, id_student3 现在 id_student1、id_student2、id_student3 包含与 bpi_registration 中相同的id 学生。我不确定如何连接多个字段。我写的查询如下。如果我错了,请纠正我:
SELECT * FROM bpi_registration
INNER JOIN bpi_teamProfile
ON bpi_registration.id=bpi_teamProfile.id_student1
AND bpi_registration.id=bpi_teamProfile.id_student2
AND bpi_registration.id=bpi_teamProfile.id_student3
AND bpi_registration.id=bpi_teamProfile.id_student4
AND bpi_registration.id=bpi_teamProfile.id_student5
我正在尝试以这样一种方式实现搜索过滤器,即当有人点击团队下拉菜单时,来自 bpi_registration 的 firstname,lastname,email,city,state,country 会出现。下面是我的PHP代码
if (isset($_GET['Team']))
{
$sql="SELECT * FROM bpi_registration
INNER JOIN bpi_teamProfile
ON bpi_registration.id=bpi_teamProfile.id_student1
AND bpi_registration.id=bpi_teamProfile.id_student2
AND bpi_registration.id=bpi_teamProfile.id_student3
AND bpi_registration.id=bpi_teamProfile.id_student4
AND bpi_registration.id=bpi_teamProfile.id_student5"
$userQuery = "{$sql} WHERE bpi_teamProfile.team_name = :team_id";
$user = $db->prepare($userQuery);
$user->execute(['team_id' => $_GET['Team']]);
$selectedUser=$user->fetch(PDO::FETCH_ASSOC);
if(isset($selectedUser))
{
echo '<tr>';
echo '<td>' . $selectedUser['first_name'] . '</td>';
echo '<td>' . $selectedUser['last_name'] . '</td>';
echo '<td>' . $selectedUser['email'] . '</td>';
echo '<td>' . $selectedUser['address_city'] . '</td>';
echo '<td>' . $selectedUser['address_state'] . '</td>';
echo '<td>' . $selectedUser['address_country'] . '</td>';
echo '</tr>';
}
}
当我们点击团队过滤器时,URL 看起来像这样 - https://www.example.com/retrieve1.php?Grade=&School=&Team=mary+winners&Students=
但是我无法得到想要的结果。
【问题讨论】:
-
@PiyushGupta 不,我不是
-
我认为您的查询是正确的,我们不知道您的实际需求,所以您可以更新您的问题吗?......并且您有足够的数据库用于测试目的吗?
-
@PiyushGupta 我现在更新了我的问题。