在会话中存储数组并重新获得所需的值

时间:2016-02-19 09:46:16

标签: php arrays session

下面的代码将post id的数组存储到session中,并使用foreach迭代post id并调用与该post id相关的数据(title,body)。它工作正常。

的index.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。

1 个答案:

答案 0 :(得分:0)

在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?;
?>