1

我有一个 php 文件,它生成一个图形,通过 4 个 sql 语句的答案填充,在另一个 php 文件中,我有一个简单的循环,通过会话将变量发布到嵌套在图像文件的 sql 中的变量来请求图像。

我已经检查了“发送”变量是否正在遍历我的循环......但问题是,如果我想迭代 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
}
?>
4

2 回答 2

1

我想念他们的东西吗?

是的,PHP 中的会话是阻塞的。这意味着当您的脚本运行时,该round.php脚本不会运行。它将等到相关脚本完成。

更准确地说:甚至更长。输出甚至必须先到浏览器。

然后它为您提供图形作为图像。然后$_SESSION变量已经很长时间为 2 了。

而是传递一个查询参数($_GETparameter),$_SESSION这里行不通。

<?php

for ($i = 1; $i < 3; $i++)
{     
    ?><div id="apDiv1"><img src="round.php?graph=<?php echo $i; ?>"></div><?php
}

?>
于 2012-11-07T22:12:08.527 回答
0

如果您暂时忽略 html 输出,则循环不会影响您的会话设置:

for ($i = 1; $i < 3; $i++){
  $_SESSION['question'] = $i;
}

$_SESSION['question'] = 2;

是等价的。您只是两次覆盖相同的值。

于 2012-11-07T22:12:34.920 回答