Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中从一个页面检索变量以显示在第二个页面上_Php_Mysql_Session_Get_Rank - Fatal编程技术网

在PHP中从一个页面检索变量以显示在第二个页面上

在PHP中从一个页面检索变量以显示在第二个页面上,php,mysql,session,get,rank,Php,Mysql,Session,Get,Rank,我有一个“排名”表,通过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

我有一个“排名”表,通过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>";
}
然后我只回显$rank变量以显示该团队的排名,这很好。但是,有没有更好的方法可以在不通过href发送的情况下检索rank变量?所以我可以改变这一点:

echo "<td class='left'><a href='team.php?team_id=$teamid&rank=$rank'>$row[1]</a></td>";
echo”“;
回到:

echo "<td class='left'><a href='team.php?team_id=$teamid'>$row[1]</a></td>";
echo”“;
以不同的方式检索排名时

我应该注意,我还尝试使用会话变量从第一页检索排名。但是,由于for循环覆盖会话变量直到最后一行,因此每个用户的页面都显示“42”的排名。如下图所示:

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>";
}
session_start();
对于($i=0;$i<$rows;$i++){
$result->data\u seek($i);
$row=$result->fetch_数组(MYSQLI_NUM);
$\会话[“秩”]=第12行$;
$teamid=$row[0];
回声“;
回显“$”会话[“秩”];
回声“;
对于($j=2;$j<11;$j++)回显“$row[$j]”;
回声“;
}

事实上,你尝试的方式是正确的。。但是,如果您仍在寻找替代方案,一种方法是将每个团队排名存储在单独的会话变量中。。。类似于
$\u会话[$teamid]=$rank

for($i = 0; $i < $rows; $i++) {
$result->data_seek($i);
$row = $result->fetch_array(MYSQLI_NUM);
$rank = $row[12];
$teamid = $row[0];
$_SESSION[$teamid] = $rank;
echo "<tr>";
echo "<td class='rank'>" . $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>";
}

事实上,你尝试的方式是正确的。。但是,如果您仍在寻找替代方案,一种方法是将每个团队排名存储在单独的会话变量中。。。类似于
$\u会话[$teamid]=$rank

for($i = 0; $i < $rows; $i++) {
$result->data_seek($i);
$row = $result->fetch_array(MYSQLI_NUM);
$rank = $row[12];
$teamid = $row[0];
$_SESSION[$teamid] = $rank;
echo "<tr>";
echo "<td class='rank'>" . $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”。您可以只设置会话变量我已经尝试过这样做,但是该变量在team.php页面上为每个团队显示相同的排名“42”。您的替代方法与我所想的方向一致。但是,当我回显$rank时,它不会返回任何数据。您是否在这两个页面的开头都设置了
session\u start()
?是的,如果我放入一些基本测试数据,会话就会进行通信。我将引号添加到了$\u session['$teamid']=$rank中,它会显示数据。但对于每支球队的排名,它仍然返回“42”。因此,我相信每次for循环运行时,变量仍会被覆盖。您添加的引号是错误的。请查看我的ans并按我所做的方式添加它们。您的替代方法正是我所想的方向。但是,当我回显$rank时,它不会返回任何数据。您是否在这两个页面的开头都设置了
session\u start()
?是的,如果我放入一些基本测试数据,会话就会进行通信。我将引号添加到了$\u session['$teamid']=$rank中,它会显示数据。但对于每支球队的排名,它仍然返回“42”。因此,我相信每次for循环运行时,变量仍会被覆盖。您添加的引号是错误的。请查看我的ans并像我那样添加它们
$teamid = $_GET['team_id'];
$rank = $_SESSION[$teamid];