Php Mysql PDO从同一个DB表中的两个selects语句创建单个HTML表(需要SQL建议)

Php Mysql PDO从同一个DB表中的两个selects语句创建单个HTML表(需要SQL建议),php,html,mysql,pdo,Php,Html,Mysql,Pdo,我有一张桌子,里面有花名册。每个跑步者都有一行,其中一列表示主客场。我目前使用下面的方法创建两个选择,但是这会创建一个不稳定的表(首先是主行,然后是下一行)。 这是我当前的SQL: $getrosterhome = "SELECT sk.runnerid hskid, sk.runnername hskname, sk.runnernumber hsknum, sk.teamid hteamid, r.rosterid, t.teamname hsktname, t.teamn

我有一张桌子,里面有花名册。每个跑步者都有一行,其中一列表示主客场。我目前使用下面的方法创建两个选择,但是这会创建一个不稳定的表(首先是主行,然后是下一行)。 这是我当前的SQL:

$getrosterhome = "SELECT 
sk.runnerid hskid, 
sk.runnername hskname, 
sk.runnernumber    hsknum, 
sk.teamid hteamid, 
r.rosterid, t.teamname hsktname, 
t.teamname_abbr hsktnamabbr, 
g.gameid, g.game_name from games_rosters r 

join runners sk on ( sk.runnerid = r.home_runner_1 OR sk.runnerid = r.home_runner_2 OR sk.runnerid = r.home_runner_3 OR sk.runnerid = r.home_runner_4 OR sk.runnerid = r.home_runner_5 OR sk.runnerid = r.home_runner_6 OR sk.runnerid = r.home_runner_7 OR sk.runnerid = r.home_runner_8 OR sk.runnerid = r.home_runner_9 OR sk.runnerid = r.home_runner_10 OR sk.runnerid = r.home_runner_11 OR sk.runnerid = r.home_runner_12 OR sk.runnerid = r.home_runner_13 OR sk.runnerid = r.home_runner_14) 
join teams t on t.teamid = r.home_teamid 
join games_played g on g.gameid = r.gameid AND g.gameid = '$_GET[rosterid]' 
where g.game_deleted = 0 AND r.roster_deleted = 0 AND sk.runner_deleted = 0";
$rowh=$pdo->prepare($getrosterhome);
$rowh->execute();

$getrosteraway = "SELECT 
 sk.runnerid askid, 
 sk.runnername askname, 
 sk.runnernumber asknum,
 sk.teamid ateamid, 
 r.rosterid, t.teamname asktname, 
 t.teamname_abbr asktnamabbr, g.gameid, 
 g.game_name from games_rosters r 
 join runners sk on ( sk.runnerid = r.away_runner_1 OR sk.runnerid = r.away_runner_2 OR sk.runnerid = r.away_runner_3 OR sk.runnerid = r.away_runner_4 OR sk.runnerid = r.away_runner_5 OR sk.runnerid = r.away_runner_6 OR sk.runnerid = r.away_runner_7 OR sk.runnerid = r.away_runner_8 OR sk.runnerid = r.away_runner_9 OR sk.runnerid = r.away_runner_10 OR sk.runnerid = r.away_runner_11 OR sk.runnerid = r.away_runner_12 OR sk.runnerid = r.away_runner_13 OR sk.runnerid = r.away_runner_14) 
join teams t on t.teamid = r.away_teamid 
join games_played g on g.gameid = r.gameid AND g.gameid = '$_GET[rosterid]' 
where g.game_deleted = 0 AND r.roster_deleted = 0 AND sk.runner_deleted = 0";
$rowa=$pdo->prepare($getrosteraway);
$rowa->execute();
当我在结果中循环时,我无法使表格在一行上左对齐右对齐。我可以在右边空白的情况下得到主场的成绩,然后客场的几行在表格中留下了很大的空白

在这种情况下,是否可以创建一个SQL来覆盖所有内容?我尝试嵌套选择、连接等,但从未得到正确答案

在“奥运会名册”表中,默认值为空

下面是我在中使用while循环的内容
 </tr>
    <?php while (( $resultshome = $rowh->fetch()) || ($resultsaway = $rowa->fetch())) { ?>
                    <tr>
                        <td>
                        <?php
                           if ( !empty($resultshome) ) { ?>
                      <?php echo $resultshome['hsknum']; ?>
                    </td>
                    <td>
                      <a href="/runner/profiles/runnerprofile.php?runnerid=<?php echo $resultshome['hskid']; ?>"><?php echo $resultshome['hskname']; ?></a>
                    </td>
                    <td>
                      <?php echo $resultshome['hsktname']; ?>
                    </td>
            <td>
            </td>
            <td>
            </td>
                <?php
                }
                else {
                echo "<td></td><td></td><td></td><td></td>";
                } ?>
                    <td>
                    <?php
                    if ( !empty($resultsaway) ) { ?>
                      <?php echo $resultsaway['asknum']; ?>
                    </td>
                    <td>
                      <a href="/runner/profiles/runnerprofile.php?runnerid=<?php echo $resultsaway['askid']; ?>"><?php echo $resultsaway['askname']; ?></a>
                    </td>
                    <td>
                      <?php echo $resultsaway['asktname']; ?>
                    </td>
                </tr>
                <?php
                }
                else {
                echo "<td></td><td></td>";
                } ?>
                <?php } ?>
            </table>


感谢阅读,我期待您的建议。

您是否正在尝试更改页面的视觉外观?为什么不在php代码或客户端中处理这个问题呢?嗨,是的,不是的。是的,我想把HOME&AWAY放在同一行,就像名册上有人一样多。名册可能没有满,甚至没有空。因此,我希望SQL更改以帮助解决问题,或者修复表的while循环。我在这两个方面都有困难。所以你的问题是你的表中在你的主栏和客场栏之间有空栏?我实际上不知道为什么我不能把这作为一个整体来工作。很可能这就是问题所在。我知道我可以把它们作为两个独立的东西,当我尝试嵌套选择/左连接等时,我最终得到的信息和结果的倍数都是错误的。所以我不知道是不是我的ID名称连接导致我的SQL尝试失败,我的while循环工作,但我没有得到我期望的结果-空白TD如果为空,在对方团队中填充TD。。。我想我在某个地方把自己弄糊涂了,无法回到正轨,因此上面的两个选择和推诿:(我只是很难理解您当前的结果如何不是您想要的格式。据我所知,您的问题完全是一个视觉问题:您的表以错误的格式显示(额外的空列)。如果这纯粹是一个视觉问题,并且所有内容都是正确的,我将停止尝试更改您的SQL查询,并将重点放在用于呈现表的PHP上。查看您的PHP,您在这一行后多次回显空td标记:
。这是有意的吗?