在会话中存储数组并检索所需的值


Storing array in session and retrienving desired value

下面的代码将帖子 id 数组存储到会话中,并使用 foreach 我迭代帖子 ID 并调用与该帖子 ID 相关的数据(标题、正文)。它工作正常。

索引.php

$result = $query->fetchAll(PDO::FETCH_COLUMN, 0);
$_SESSION['postid']=$result;
foreach($_SESSION['postid'] as $key=>$postid){
 $sql = "SELECT * FROM posts WHERE postid=:postid";
 $query = $db->prepare($sql);
 $query->execute(array(':postid'=>$postid));
 $row = $query->fetch(PDO::FETCH_ASSOC);
 <a href="post.php"><?php echo $row['title']; ?></a>
 <p><?php echo row['body'] ?></p>
}

现在我想通过单击索引页面的链接来定向到帖子页面title并从单击其标题的会话数组调用该特定帖子 ID。在帖子页面上使用$postid = $_SESSION['postid'];给出了整个帖子 ID 数组。有什么方法可以让我只在帖子页面上为标题在索引页面上单击的特定帖子 ID 启动会话。

在 index.php 页面中,像这样修改锚标记:

<a href="post.php?pistid='<?php echo $row['postid']; ?>'"><?php echo $row['title']; ?></a>

然后在帖子页面上使用此代码在会话中设置 PostID

<?php
$_SESSION['pid'] = isset($_GET['pistid'])$_GET['pistid']:null?;
?>