【发布时间】:2012-09-28 20:27:29
【问题描述】:
我正在尝试制作一个“锦标赛”应用程序,但卡在查看来自 6 个不同表格的数据!
我有 6 个表格可以同时放入数据,但是我不能一起查看!并试图在互联网上搜索几个小时,但我就是无法得到它......
随便。这是一场 4 队锦标赛,有赢、平、输和积分。我为此准备了 6 张桌子:
- 比赛名称 - 身份证、姓名
- 团队 - 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。
【问题讨论】:
-
您真的应该学习如何在单个查询中连接表。我写了一个相当长的question and answer 来帮助解决这个确切的问题——我认为你真的会从阅读中受益。
-
这不仅仅是 真棒 @Fluffeh!我现在就喜欢它,以提供指向它的链接,并将其进一步提供给“有需要”的其他人。
-
除此之外,从头开始重新设计数据库。设计有缺陷。例如见en.wikipedia.org/wiki/Database_normalization。如果你想将锦标赛扩大到 8 名玩家,你会怎么做?有 1000 万玩家吗?我知道不会发生,但这是为了说明问题。
-
@Havelock 是的,这就是我写这篇文章的重点——我遇到了太多 这个连接查询有什么问题 类型的问题,我提供了几行查询,但想给出深入的解释,并提供一些我在此过程中学到的技巧和窍门。我已经在它上面放了一个赏金来装饰更多的答案,我想我将来会再次这样做:)
-
再一次,这太棒了@Fluffeh!但有时我觉得这些问题中的大部分都出现了,因为糟糕的数据库设计:-(这里的问答不足以解释这一切:-/