我正在尝试整理一个工具,以帮助我即将到来的幻想曲棍球草案,同时也学习PHP.我试图在一个页面上创建多个列表,一个显示前10个可用的整体玩家,然后是其他按位置显示前10个可用玩家的列表.
这是我的SQL查询/代码
include 'db/connect.php';
$sql='SELECT * FROM players WHERE pick IS NULL';
$players=$conn->query($sql);
if($players === false) {
trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $conn->error, E_USER_ERROR);
} else {
$rows_returned = $players->num_rows;
}
Run Code Online (Sandbox Code Playgroud)
然后在页面后面我有一个while循环,生成一个包含前十名玩家的表
while ($row = $players->fetch_array()) {
if ($i == 10) {
break;
}
echo "<tr>";
echo "<td>" . $row['Rank'] . "</td>";
echo "<td>" . $row['Player'] . "</td>";
echo "<td>" . $row['Team'] . "</td>";
...
Run Code Online (Sandbox Code Playgroud)
一切正常.但是,当我使用相同的方法生成仅包含特定位置(C,RW/LW等等)的列表时,它会从前10名玩家列表结束的位置开始.(请参阅我的意思:http://i.imgur.com/JApeftU.png)
我认为这与$players->fetch_array()我有关,但我不知道绕过它最好的方法是什么.
有任何想法吗?谢谢!
与所有玩家一起填充行.
while ($row = $players->fetch_array()) { //? $rows = $players->fetch_all();
$rows[] = $row;
}
Run Code Online (Sandbox Code Playgroud)
您可以使用它count()来获得阵列中的玩家总数
$totalPlayers = count($rows);
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用for循环遍历数组
for($i = 0; $i < $totalPlayers; $i++){
//echo out the stuff you want
echo $rows[$i]['player'];
}
Run Code Online (Sandbox Code Playgroud)
或者只有十个
for($i = 0; $i < 10; $i++){
//echo out the stuff you want
echo $rows[$i]['player'];
}
Run Code Online (Sandbox Code Playgroud)