将多个表中的查询数据放入html表中


Putting query data from multiple table in a html table

我有一个包含5个表的数据库,其中1个表填充了ID。我想将它们链接到其他表(ID已经在那里了),这样它就会显示名称。例如:

问流派:行动

它将检索电影名称、导演名称、流派名称、评级和3D选项。

它将显示与类型有关的所有电影名称,以及这些表格中各列的ID。

然后,我尝试进行查询(见下文),该查询将能够吐出其他名称,但当我尝试将它们放在html表中时,会显示一个问题:

注意:未定义的索引:F.名称在/第53行上的public_html/selection_lookup.php

表中的其他名称也是如此。

我使用的代码如下:

<?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>

在查询中,如果有两个字段的名称相同,则可以使用别名,如下所示:

$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>";
       }
    ?>

我希望这会有所帮助。

在SELECT中为每个字段使用别名,例如

SELECT F.Name fname, ...

您将使用此别名作为关键

$row['fname']