【发布时间】:2017-11-28 21:49:24
【问题描述】:
我在 Oracle 数据库中有以下表:
CREATE TABLE Team
(
teamID INT NOT NULL,
teamName VARCHAR(50),
wins INT,
losses INT,
otlosses INT,
points INT,
PRIMARY KEY (teamID)
);
CREATE TABLE Matchup
(
matchID INT NOT NULL,
roundID INT NOT NULL,
team1ID INT NOT NULL,
team2ID INT NOT NULL,
PRIMARY KEY (matchID),
FOREIGN KEY (roundID) REFERENCES Round (roundID),
FOREIGN KEY (team1ID) REFERENCES Team (teamID),
FOREIGN KEY (team2ID) REFERENCES Team (teamID)
);
我正在循环查看比赛表并显示所有比赛。但是,我只能让它显示 TeamID,并尝试使用我从 Matchup 表中获取的 ID 让它显示 TeamName 中的 TeamName。
这是我目前正在尝试的,但似乎无法让它发挥作用。
$query = 'SELECT team1ID, team2ID FROM Matchup WHERE RoundID=1 IN (SELECT teamName FROM Team WHERE team1ID=teamID AND team2ID=teamID)';
这是应该在我的 html 页面上显示信息的其余 php 代码
<h2>Round 1 Matchups</h2>
<table width=100%>
<tr>
<th title="team1ID">Team</th>
<th title="team2ID">Team</th>
</tr>
<?php
// Remember to replace 'username' and 'password'!
$conn = oci_connect('xx', 'xxx', '(DESCRIPTION=(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(Host=db2.ndsu.edu)(Port=1521)))
(CONNECT_DATA=(SID=cs)))');
//put your query here
$query = 'SELECT team1ID, team2ID FROM Matchup WHERE RoundID=1 IN
(SELECT teamName FROM Team WHERE team1ID=teamID AND
team2ID=teamID)';
$stid = oci_parse($conn,$query);
oci_execute($stid,OCI_DEFAULT);
//iterate through each row
while ($row = oci_fetch_array($stid,OCI_ASSOC))
{
echo '<tr>';
foreach ($row as $item)
{
echo '<td>' . $item . '</td>';
}
echo '</tr>';
echo '<br>';}
echo '</table>';
oci_free_statement($stid);
oci_close($conn);
?>
【问题讨论】: