while循环中的会话变量未正确发送到第二个.php文件

while循环中的会话变量未正确发送到第二个.php文件,php,mysql,while-loop,session-variables,Php,Mysql,While Loop,Session Variables,我试图创建一个简单的主题和发布系统,我在MySQL数据库中有两个表;一个主题表和一个帖子表。在我的posts表中,我有一个post\u parentID字段,它链接到我的topics表中的topic\u id字段 下面是如何开始查询,选择(并显示)主题表中的所有主题。然后,我将topic_id字段保存到一个变量中: <?php $sql = "SELECT * FROM topics INNER JOIN members ON topics.topic_by = members.id"

我试图创建一个简单的主题和发布系统,我在MySQL数据库中有两个表;一个主题表和一个帖子表。在我的posts表中,我有一个post\u parentID字段,它链接到我的topics表中的topic\u id字段

下面是如何开始查询,选择(并显示)主题表中的所有主题。然后,我将topic_id字段保存到一个变量中:

<?php 
 $sql = "SELECT * FROM topics INNER JOIN members ON topics.topic_by = members.id";
 $topics = $mysqli->query($sql);

  if ($topics->num_rows > 0) {
  // output data of each topic
  while($row = $topics->fetch_assoc()) {

 //Saving TopicID into variable
   $topic_id = $row["topic_id"];
   $_SESSION['topicid'] = $topic_id;?>

它只返回“我的主题”表中的最后一个主题id,而不是while循环中的当前主题id。我的逻辑是正确的还是应该做一些不同的事情?

在循环中这样做:

$_SESSION['topicid'] = $topic_id;
每次循环时都会覆盖topicid的值。我不知道您希望您的topicid看起来是什么样子,但避免这种情况的可能方法是:

$_SESSION['topicid'] = array();

while($row = $topics->fetch_assoc()) {
$_SESSION['topicid'][] = $topic_id;
...

$topic\u id=0
//在循环之前设置此选项

while(){...
.....
$topic_id++//为每个循环增加一个id

echo$topic\u id
//如果要打印id的值
//将特定id连接到所选链接

}
//关闭while循环

在您的nextpage.php中


$variable\u name=$\u GET['$topic\u id']
//通过这种方式,可以将特定id连接到单击的特定链接

另一种简单的方法是: “>转到下一页//这将在循环期间为每个链接附加特定ID


然后,转到下一页,使用$\u GET方法获取通过url发送的id…然后将其应用到您的查询中

use
session\u start()
在顶部关于您的逻辑的
之后,您正在运行循环并尝试在会话中加载值,当然您将只获得最后一个主题id,数组将是此处的解决方案,或者您可以使用此
$sql=“SELECT*FROM topics”尝试在主题上内部加入成员。主题\u by=members.id按主题排序\u id描述";我不确定它是否有效。按添加订单似乎不起作用:(.但我仍然感到困惑,如果我在会话中加载值并将其定向到我的第二个php文件,那么它不应该发送相应的主题_id吗?@Aces它只发送1个id,要发送多个id,需要按照Osuwariboy在其回答中的建议设置数组感谢Osuwariboy,但是我如何调用cor在我的第二个php文件(send_post.php)中有rect topic_id?当你为每个帖子创建HTML时,你能不能在你的send_post中包含一些信息来帮助你调用正确的topic_id?比如有一个隐藏的输入字段,其值包含你想要的id,或者帖子控件的id/名称是“post_123456”?
$_SESSION['topicid'] = $topic_id;
$_SESSION['topicid'] = array();

while($row = $topics->fetch_assoc()) {
$_SESSION['topicid'][] = $topic_id;
...
while(){...
.....