我有一个生成图形的php文件,通过4个sql语句的答案填充,在另一个php文件中我有一个简单的循环,通过会话将变量通过会话发布到嵌套在sql的sql中来请求图像图像文件。
我已经检查过'sent'变量正在迭代我的循环......但问题是,如果我想用2迭代,我得到的2个图像是最后一个结果而不是graph1,graph2,我得到graph2,graph2 ...
是他缺少的东西?请任何帮助 - 非常新的PHP谢谢:) 继承人循环;
<?php
session_start();
for ($i = 1; $i < 3; $i++)
{
$_SESSION['question'] = $i;
?>
<div id="apDiv1"><img src="round.php"></div>
<?php
}
?>
答案 0 :(得分:1)
是他缺少的东西吗?
是的,PHP中的会话是阻塞的。这意味着当您的脚本运行时,round.php
脚本不会运行。它将一直等到相关脚本完成。
更正确:甚至更长。输出必须首先进入浏览器。
然后它会将图形作为图像提供给您。然后$_SESSION
变量已经很长时间到2了。
相反传递查询参数($_GET
参数),$_SESSION
在这里不起作用。
<?php
for ($i = 1; $i < 3; $i++)
{
?><div id="apDiv1"><img src="round.php?graph=<?php echo $i; ?>"></div><?php
}
?>
答案 1 :(得分:0)
如果忽略html输出一秒钟,循环不会影响会话设置:
for ($i = 1; $i < 3; $i++){
$_SESSION['question'] = $i;
}
和
$_SESSION['question'] = 2;
是等同的。你只是两次覆盖相同的值。