while循环中的会话变量未正确发送到第二个.php文件
我试图创建一个简单的主题和发布系统,我在MySQL数据库中有两个表;一个主题表和一个帖子表。在我的posts表中,我有一个post\u parentID字段,它链接到我的topics表中的topic\u id字段 下面是如何开始查询,选择(并显示)主题表中的所有主题。然后,我将topic_id字段保存到一个变量中: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"
<?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…然后将其应用到您的查询中usesession\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(){...
.....