PHP-如何在PHP中检索会话

PHP-如何在PHP中检索会话,php,mysql,database,session-variables,Php,Mysql,Database,Session Variables,我创建了一个表,其中包含id-names-jobs和只显示名称的页面,在每个名称旁边有按钮Job和包含id的会话。这是我的代码 $query = mysql_query("SELECT * FROM table"); while($fetch = mysql_fetch_array("$query")){ $name = $fetch['names']; $id = $fetch['id']; echo '</br>'; echo $name; $_SESSION['name'] =

我创建了一个表,其中包含
id-names-jobs
和只显示名称的页面,在每个名称旁边有按钮
Job
和包含id的会话。这是我的代码

$query = mysql_query("SELECT * FROM table");
while($fetch = mysql_fetch_array("$query")){
$name = $fetch['names'];
$id = $fetch['id'];
echo '</br>';
echo $name;
$_SESSION['name'] = $id;
echo "<button>Job</button>";
}
$query=mysql\u查询(“从表中选择*);
而($fetch=mysql\u fetch\u数组($query))){
$name=$fetch['names'];
$id=$fetch['id'];
回音“
”; echo$name; $\会话['name']=$id; 呼应“工作”; }

当用户单击按钮
Job
时,我希望重定向到包含该会话作业的页面。那么我该怎么做呢?

echo
行替换为:

echo "<button onclick='document.location=\"show_job.php?id=$id\">Job</button>";

echo”在每个循环中重写$\u会话变量,这样它将只包含表中最后一个id

我看到的唯一方法是创建一个链接
并在页面上查询确切的作业,如
SELECT*FROM table WHERE id=$\u GET['job\u id']

无论如何,您必须在html中的某个地方编写它,因为服务器端脚本需要知道您在寻找什么id


在我看来,您并不真正了解客户端和服务器端之间发生了什么,但我无法向您提供教程的链接,因为我上次使用它们时已经很长时间了。有一种比使用会话更简单的方法。因为您使用会话的方式,一次只能保存一个ID

尝试使用ID为的链接作为参数,而不是按钮

<a href="link-to-target-page?id=$id">Job</a>
现在你在目标页面中有了ID。如果你想加载更多的东西而不仅仅是一个作业,那么试着从DB中提取


另一方面,如果你只想在这里显示一个作业,那么整个过程都是一个糟糕的实现。因为不要让用户重定向到一个新页面只是为了看到一个作业标题。允许他在第一个页面中看到它。

@KlausJasper你只有1!变量,你如何在其中存储所有ID?你需要显示一些标识符,否则就会出现错误无法确定按下了哪个按钮。您可以使用替换,在$\u会话中保留替换=>实际id的映射(按照Frasci的建议,在php文件顶部使用
SESSION\u start()
),以保留它们,但您仍然需要指出按下了哪个按钮。您可以进一步隐藏它-一旦他们请求show_job.php,将结果存储在$_SESSION中,然后将其重定向到show_job.php而不带id;再次请求页面时,从$_SESSION中检索它。
$id = $_GET['id'];