将来自多个 table 的查询数据放入 html table
Putting query data from multiple table in a html table
我有一个包含 5 个 table 的数据库,其中 1 个填充了 ID。我想 link 他们到其他 table s(ID 已经存在)所以它会显示名称。例如:
询问类型:动作
它将检索电影名称、导演名称、流派名称、评级和 3D 选项。
它将显示有关类型的所有电影名称以及那些 table 的列的 ID。
然后我尝试进行查询(见下文),这将能够吐出其他名称,但是当我尝试将它们放入 html table 时,它会显示问题说:
Notice: Undefined index: F.Name in ../public_html/selection_lookup.php on line 53
table 中的其他名称也是如此。
我使用的代码如下:
<?php
include ('login.php');
$dcxn = mysql_connect($db_hostname, $db_username, $db_password) or die ("couldn't connect to server");
mysql_select_db($db_database) or die("unable to select database:" . mysql_error());
$selection = $_POST["GenreSel"];
$query= "
SELECT F.Name, D.Name, G.Genre, R.Rating, T.ThreeDeeOption
FROM Film F, Director D, Genre G, Rating R, ThreeDee T
WHERE F.GenreID=$selection
AND F.DirID = D.DirID
AND F.GenreID = G.GenreID
AND F.RatingID = R.RateID
AND F.ThreeDeeID = T.ThreeDeeID
";
$result = mysql_query($query);
if (!$result) die ("Database access failed:" . mysql_error());
echo '<pre>';
print_r($result);
echo'</pre>';
?>
<table border="ridge">
<tr class="header">
<td>Name</td>
<td>Director</td>
<td>Genre</td>
<td>Rating</td>
<td>available in 3D?</td>
</tr>
<?php
while ($row = mysql_fetch_array($result)) {
echo "<tr>";
echo "<td>".$row['F.Name']."</td>";
echo "<td>".$row['D.Name']."</td>";
echo "<td>".$row['G.Genre']."</td>";
echo "<td>".$row['R.Rating']."</td>";
echo "<td>".$row['T.ThreeDeeOption']."</td>";
echo "</tr>";
}
?>
</table>
在 SELECT 中为每个字段使用别名,例如
SELECT F.Name fname, ...
您将把这个别名作为密钥
$row['fname']
在您的查询中,如果您有两个同名的字段,您可以使用如下别名:
$query= " SELECT F.Name as fname, D.Name as dname, G.Genre, R.Rating, T.ThreeDeeOption
FROM Film F, Director D, Genre G, Rating R, ThreeDee T
WHERE F.GenreID=$selection
AND F.DirID = D.DirID
AND F.GenreID = G.GenreID
AND F.RatingID = R.RateID
AND F.ThreeDeeID = T.ThreeDeeID
";
然后你可以这样取回数据:
<?php
while ($row = mysql_fetch_array($result)) {
echo "<tr>";
echo "<td>".$row['fname']."</td>";
echo "<td>".$row['dname']."</td>";
echo "<td>".$row['Genre']."</td>";
echo "<td>".$row['Rating']."</td>";
echo "<td>".$row['ThreeDeeOption']."</td>";
echo "</tr>";
}
?>
希望对你有所帮助。
我有一个包含 5 个 table 的数据库,其中 1 个填充了 ID。我想 link 他们到其他 table s(ID 已经存在)所以它会显示名称。例如:
询问类型:动作
它将检索电影名称、导演名称、流派名称、评级和 3D 选项。
它将显示有关类型的所有电影名称以及那些 table 的列的 ID。
然后我尝试进行查询(见下文),这将能够吐出其他名称,但是当我尝试将它们放入 html table 时,它会显示问题说:
Notice: Undefined index: F.Name in ../public_html/selection_lookup.php on line 53
table 中的其他名称也是如此。
我使用的代码如下:
<?php
include ('login.php');
$dcxn = mysql_connect($db_hostname, $db_username, $db_password) or die ("couldn't connect to server");
mysql_select_db($db_database) or die("unable to select database:" . mysql_error());
$selection = $_POST["GenreSel"];
$query= "
SELECT F.Name, D.Name, G.Genre, R.Rating, T.ThreeDeeOption
FROM Film F, Director D, Genre G, Rating R, ThreeDee T
WHERE F.GenreID=$selection
AND F.DirID = D.DirID
AND F.GenreID = G.GenreID
AND F.RatingID = R.RateID
AND F.ThreeDeeID = T.ThreeDeeID
";
$result = mysql_query($query);
if (!$result) die ("Database access failed:" . mysql_error());
echo '<pre>';
print_r($result);
echo'</pre>';
?>
<table border="ridge">
<tr class="header">
<td>Name</td>
<td>Director</td>
<td>Genre</td>
<td>Rating</td>
<td>available in 3D?</td>
</tr>
<?php
while ($row = mysql_fetch_array($result)) {
echo "<tr>";
echo "<td>".$row['F.Name']."</td>";
echo "<td>".$row['D.Name']."</td>";
echo "<td>".$row['G.Genre']."</td>";
echo "<td>".$row['R.Rating']."</td>";
echo "<td>".$row['T.ThreeDeeOption']."</td>";
echo "</tr>";
}
?>
</table>
在 SELECT 中为每个字段使用别名,例如
SELECT F.Name fname, ...
您将把这个别名作为密钥
$row['fname']
在您的查询中,如果您有两个同名的字段,您可以使用如下别名:
$query= " SELECT F.Name as fname, D.Name as dname, G.Genre, R.Rating, T.ThreeDeeOption
FROM Film F, Director D, Genre G, Rating R, ThreeDee T
WHERE F.GenreID=$selection
AND F.DirID = D.DirID
AND F.GenreID = G.GenreID
AND F.RatingID = R.RateID
AND F.ThreeDeeID = T.ThreeDeeID
";
然后你可以这样取回数据:
<?php
while ($row = mysql_fetch_array($result)) {
echo "<tr>";
echo "<td>".$row['fname']."</td>";
echo "<td>".$row['dname']."</td>";
echo "<td>".$row['Genre']."</td>";
echo "<td>".$row['Rating']."</td>";
echo "<td>".$row['ThreeDeeOption']."</td>";
echo "</tr>";
}
?>
希望对你有所帮助。