【发布时间】:2015-12-01 23:07:23
【问题描述】:
我对这张非常简单的桌子做了一场噩梦。我正在尝试创建一个草稿类型板。我有用户和玩家。我希望用户显示为<th>,然后每个玩家下有 14 个玩家<td>。有点像这样。。
它只是为用户创建了两列玩家。而不是每个人一个。它也没有在应有的位置显示数据库内容。显示的玩家应该只在它所在的第一个位置(左侧)。
这是它的代码。
$draft_order_stmt = mysqli_query($con,"SELECT * FROM user_players ORDER BY `id`");
$draft_order_stmt2 = mysqli_query($con,"SELECT username FROM user_players ORDER BY `id`");
?>
<table class="draft_border_table">
<tr>
<th class="draft_table_number_th">RND</th>
<?php
while ($draft_user_row = mysqli_fetch_array($draft_order_stmt2)) {
$username = $draft_user_row['username'];
echo "<th class='draft_table_th'><div>" . $username . "</div></th>";
}
?>
</tr>
<?php
for ($count = 1; $count < 15; $count++) {
$col = "player" . $count;
$query = "SELECT $col FROM user_players ORDER BY id";
$draft_order_stmt2 = mysqli_query($con, $query);
$draft_order_row = mysqli_fetch_array($draft_order_stmt2);
echo "<tr><td>" . $count . "</td>";
foreach ($draft_order_row as $player) {
echo "<td><div class=\"draftBorder\">";
if (is_null($player)) {
$player = " ";
}
echo $player . "</div></td>";
}
echo "</tr>";
}
?>
</table>
我最初也尝试过,它显示了所有玩家输入,但玩家输入都在一个块中。像这样……
用户 1 用户 2 用户 3
所有 14 个玩家输入
所有 14 个玩家输入再次
所有 14 个玩家输入再次
等等。
这是我的代码...
$draft_order_stmt = mysqli_query($con,"SELECT * FROM user_players ORDER BY `id`");
$draft_order_stmt2 = mysqli_query($con,"SELECT username FROM user_players ORDER BY `id`");
?>
<table class="draft_border_table">
<tr>
<th>Rnd</th>
<?php
while($draft_username_row = mysqli_fetch_array($draft_order_stmt2)) {
$username = $draft_username_row['username'];
?>
<th><?php echo "<div>" . $username . "</div>"; ?></th>
<?php
}
?>
</tr>
<?php
$count = 1;
while($draft_order_row = mysqli_fetch_array($draft_order_stmt)) {
$count + 1;
$player1 = $draft_order_row['player1'];
$player2 = $draft_order_row['player2'];
$player3 = $draft_order_row['player3'];
$player4 = $draft_order_row['player4'];
$player5 = $draft_order_row['player5'];
$player6 = $draft_order_row['player6'];
$player7 = $draft_order_row['player7'];
$player8 = $draft_order_row['player8'];
$player9 = $draft_order_row['player9'];
$player10 = $draft_order_row['player10'];
$player11 = $draft_order_row['player11'];
$player12 = $draft_order_row['player12'];
$player13 = $draft_order_row['player13'];
$player14 = $draft_order_row['player14'];
?>
<tr>
<td><?php echo $count; ?></td>
<td><?php echo "<div class='draftBorder'>" . $player1 . "</div>"; ?></td>
<td><?php echo "<div class='draftBorder'>" . $player2 . "</div>"; ?></td>
<td><?php echo "<div class='draftBorder'>" . $player3 . "</div>"; ?></td>
<td><?php echo "<div class='draftBorder'>" . $player4 . "</div>"; ?></td>
<td><?php echo "<div class='draftBorder'>" . $player5 . "</div>"; ?></td>
<td><?php echo "<div class='draftBorder'>" . $player6 . "</div>"; ?></td>
<td><?php echo "<div class='draftBorder'>" . $player7 . "</div>"; ?></td>
<td><?php echo "<div class='draftBorder'>" . $player8 . "</div>"; ?></td>
<td><?php echo "<div class='draftBorder'>" . $player9 . "</div>"; ?></td>
<td><?php echo "<div class='draftBorder'>" . $player10 . "</div>"; ?></td>
<td><?php echo "<div class='draftBorder'>" . $player11 . "</div>"; ?></td>
<td><?php echo "<div class='draftBorder'>" . $player12 . "</div>"; ?></td>
<td><?php echo "<div class='draftBorder'>" . $player13 . "</div>"; ?></td>
<td><?php echo "<div class='draftBorder'>" . $player14 . "</div>"; ?></td>
</tr>
<?php
}
?>
</table>
有人知道我该如何解决这个问题吗?
【问题讨论】:
-
看起来您不小心覆盖了
$draft_order_stmt2的内容,因此您丢失了您在第一个脚本的第二行中进行的第二个查询的结果。 -
这一行?
1$draft_order_stmt2 = mysqli_query($con, $query);那我还能怎么做呢? -
好吧,使用另一个,第三个变量来保存第三个语句的结果。
-
查看您的代码,这将使每列标题为您的用户的用户名,然后每行标题为用户玩家...这不会将玩家与每个用户相关联。您希望用户名作为第一列,玩家在右边,还是用户名作为列标题,玩家在他们的垂直下方?还有RND列的含义是什么?
-
@DanBelden 我希望将用户名作为列标题,并将与它们关联的玩家垂直放在它们下方。 RND 只是圆形的缩写。这只是一个用户草稿。
标签: php mysql for-loop while-loop html-table