1

私は「トーナメント」アプリケーションを作成しようとしていますが、6つの異なるテーブルからのデータの表示に行き詰まっています!

同時にデータを入れることができるタブが6つありますが、一緒に表示することはできません。そして、インターネットで何時間も検索しようとしましたが、私はそれを取得できません...

ともかく。勝ち、引き分け、負け、ポイントの4チームトーナメントです。そして私はこれのために6つのテーブルを持っています:

  • トーナメント名-ID、名前
  • チーム-ID、team1、team2、team3、team4
  • 勝ち-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>";
                }

                ?>

それが「リーグ/トーナメント」のスタートです。そして、すべてのデータがテーブルに含まれます。

そして、このコードは、自分のWebページの簡単なオンサイト編集を行うために使用したチュートリアルから取得しました。そして、mabeyでも同じ出力コードを使用できましたが、そのサイトでは、単一のテーブルからのニュースのみです。

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

ただし、以前に書いたQ&Aで説明した方法よりも、この回答で多くを説明できるかどうかは完全にはわかりません. この答えは理にかなっていますか?

于 2012-09-28T12:27:29.287 に答える