1

我正在尝试制作一个“锦标赛”应用程序,并且卡在查看来自 6 个不同表的数据!

我有6个表可以同时放入数据,但是不能一起查看!并试图在互联网上搜索几个小时,但我就是无法得到它......

反正。这是一场 4 队锦标赛,有赢、平、输和积分。为此,我有 6 张桌子:

  • 比赛名称 - ID、名称
  • 团队 - ID、团队 1、团队 2、团队 3、团队 4
  • 获胜 - ID、team1w、team2w、team3w、team4w
  • 绘制 ID、team1d、team2d、team3d、team4d
  • 松动 - ID、team1l、team2l、team3l、team4l
  • 积分 - ID、team1p、team2p、team3p、team4p

这就是表格中的内容...

这是我的输入,它工作正常..

<?php
                if(isset($_POST['submit'])) {
                    $cupname = $_POST['cupname'];
                    $team1 = $_POST['team1'];
                    $team2 = $_POST['team2'];
                    $team3 = $_POST['team3'];
                    $team4 = $_POST['team4'];

                    $zero = "0";

                    $result = mysql_query("INSERT INTO cupname (name) VALUES ('$cupname')");
                    $result = mysql_query("INSERT INTO teams (team1, team2, team3, team4) VALUES ('$team1', '$team2', '$team3', '$team4')");
                    $result = mysql_query("INSERT INTO wins (team1w, team2w, team3w, team4w) VALUES ($zero, $zero, $zero, $zero)");
                    $result = mysql_query("INSERT INTO draws (team1d, team2d, team3d, team4d) VALUES ($zero, $zero, $zero, $zero)");
                    $result = mysql_query("INSERT INTO looses (team1l, team2l, team3l, team4l) VALUES ($zero, $zero, $zero, $zero)");
                    $result = mysql_query("INSERT INTO points (team1p, team2p, team3p, team4p) VALUES ($zero, $zero, $zero, $zero)");
                echo "<h1>Turnering og lag lagt til!</h1>";
                }

                ?>

这就是制作“联赛/锦标赛”的开始。所有的数据都在表格中。

我从一个教程中获得了这段代码,该教程用于为我的网页进行简单的现场编辑。虽然我可以使用相同的输出代码,但在那个站点上它只是来自单个表的新闻。

我已经阅读了一些关于 UNION、LEFT JOIN、FULL JOIN 等的信息……但我没有明白。

这是我的“输出”代码:

<?php
                $result = mysql_query("SELECT * FROM cupname ORDER BY id DESC");
                $result = mysql_query("SELECT * FROM teams ORDER BY id DESC");
                $result = mysql_query("SELECT * FROM wins ORDER BY id DESC");
                $result = mysql_query("SELECT * FROM draws ORDER BY id DESC");
                $result = mysql_query("SELECT * FROM looses ORDER BY id DESC");
                $result = mysql_query("SELECT * FROM points ORDER BY id DESC");
                    while($row = mysql_fetch_array($result)) {
                        $i=$i + 1;
                        echo "<table>";
                        echo "<tr>";
                        echo $row['name'];
                        echo "</tr>";
                        echo "<tr><td><b>Lag</b></td>
                        <td><b>Seiere</b></td>
                        <td><b>Uavgjort</b></td>
                        <td><b>Tap</b></td>
                        <td><b>Poeng</b></td>
                        </tr><tr><td>";
                        echo $row['team1'];
                        echo "</td><td>";
                        echo $row['team1w']; 
                        echo "</td><td>"; 
                        echo  $row['team1d']; 
                        echo "</td><td>"; 
                        echo  $row['team1l']; 
                        echo "</td><td>"; 
                        echo  $row['team1p']; 
                        echo "</td></tr><tr><td>"; 
                        echo  $row['team2']; 
                        echo  "</td><td>"; 
                        echo  $row['team2w']; 
                        echo "</td><td>"; 
                        echo  $row['team2d']; 
                        echo "</td><td>"; 
                        echo  $row['team2l']; 
                        echo "</td><td>"; 
                        echo  $row['team2p']; 
                        echo "</td></tr><tr><td>"; 
                        echo  $row['team3']; 
                        echo  "</td><td>"; 
                        echo  $row['team3w']; 
                        echo "</td><td>"; 
                        echo  $row['team3d']; 
                        echo "</td><td>"; 
                        echo  $row['team3l']; 
                        echo "</td><td>";
                        echo  $row['team3p']; 
                        echo "</td></tr><tr><td>"; 
                        echo  $row['team4']; 
                        echo  "</td><td>"; 
                        echo  $row['team4w']; 
                        echo "</td><td>"; 
                        echo  $row['team4d']; 
                        echo "</td><td>"; 
                        echo  $row['team4l']; 
                        echo "</td><td>"; 
                        echo  $row['team1p']; 
                        echo "</td></tr></table><br /><hr /><br />";
                    }
                ?>

有人知道我应该做什么,或者不做什么吗?

感谢您的任何回答!

编辑:我只是得到一个空表的输出!仅输出点,即 0。

4

1 回答 1

0

您需要加入表格。从您的问题来看,您似乎已经对表的关系部分进行了排序(尽管我不完全确定我是否完全遵循它),所以这实际上是一个使用什么连接的问题:

内连接 - 这将只返回所有表中数据匹配的记录:

select
    tourn.id,
    tourn.name
from
    tournament
        join teams team
            on tourn.id=team.id
        join wins win
            on tourn.id=win.id

依此类推(我假设锦标赛.ID 是其他相关的列)

现在,您可以将其更改为外连接,无论其他表中是否存在匹配行,它都会从您的第一个表中返回行:

select
    tourn.id,
    tourn.name
from
    tournament
        right outer join teams team
            on tourn.id=team.id
        right outer join wins win
            on tourn.id=win.id

我不完全确定我可以在这个答案中以任何我在之前写的问答中解释的方式更好地解释它。这个答案有意义吗?

于 2012-09-28T12:27:29.287 回答