【发布时间】:2016-06-20 00:06:22
【问题描述】:
我有一个“排名”表,它通过 mysql 查询对 1-42 的团队进行排名。我想要做的是从第一页检索排名以通过 php 显示在每个团队的页面上。我能够通过 team.php 链接使用第二个 GET 方法来让它工作,但在 url 中加上团队 ID 的排名似乎并不正确。
这是我目前在排名页面上的代码:
for($i = 0; $i < $rows; $i++) {
$result->data_seek($i);
$row = $result->fetch_array(MYSQLI_NUM);
$rank = $row[12];
$teamid = $row[0];
echo "<tr>";
echo "<td class='rank'>" . $rank . "</td>";
echo "<td class='left'><a href='team.php?team_id=$teamid&rank=$rank'>$row[1]</a></td>";
for($j = 2; $j < 11; $j++) echo "<td>$row[$j]</td>";
echo "</tr>";
}
然后是个人团队的页面:
$teamid = $_GET['team_id'];
$rank = $_GET["rank"];
然后我只是回显 $rank 变量以显示该团队的排名,这很好用。但是,有没有更好的方法来检索排名变量而不通过 href 发送它?所以我可以改变这个:
echo "<td class='left'><a href='team.php?team_id=$teamid&rank=$rank'>$row[1]</a></td>";
返回:
echo "<td class='left'><a href='team.php?team_id=$teamid'>$row[1]</a></td>";
同时以不同的方式检索排名?
我应该注意我还尝试使用 SESSION 变量从第一页检索排名。但是,每个用户的页面显示排名“42”,因为 for 循环会覆盖 SESSION 变量,直到最后一行。如下图:
session_start();
for($i = 0; $i < $rows; $i++) {
$result->data_seek($i);
$row = $result->fetch_array(MYSQLI_NUM);
$_SESSION["rank"] = $row[12];
$teamid = $row[0];
echo "<tr>";
echo "<td class='rank'>" . $_SESSION["rank"] . "</td>";
echo "<td class='left'><a href='team.php?team_id=$teamid'>$row[1]</a></td>";
for($j = 2; $j < 11; $j++) echo "<td>$row[$j]</td>";
echo "</tr>";
}
【问题讨论】:
-
你可以只设置一个会话变量
-
我已尝试这样做,但变量在 team.php 页面上为每个团队显示相同的排名“42”。
标签: php mysql session get rank