【问题标题】:Passing retrieved database records to a php file将检索到的数据库记录传递给 php 文件
【发布时间】:2025-11-26 19:25:02
【问题描述】:

system/article.php

<?php 

$sql = "SELECT articleTitle, articleSummary, articleContent FROM articles";
$result = $dbconnect->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo $row["articleTitle"];
        echo $row["articleSummary"];
        echo $row["articleContent"];
    }
} else {
    echo "0 results";
}

include 'template/homepage.php';

从文章表中检索文章。

我已经包含了应该作为模板的 homepage.php。

template/homepage.php

<?php include 'template/common/header.php'; ?>

  <h1>Article Title here</h1>
  <p>articleSummary</p>

<?php include 'template/common/footer.php'; ?>

我现在如何将检索到的数据传递给 homepage.php 以在浏览器上显示?

编辑

smarber 指给我看

在第一个文件中:

global $variable;
$variable = "apple";
include('second.php');

在第二个文件中:

echo $variable;

有效。但是我该如何解决我的问题呢?

【问题讨论】:

  • 为了更好地帮助您,您打算循环获取的数据是什么?
  • @someOne,需要在首页发布所有文章在表格中
  • 含糊不清!那么,为什么不直接从主页获取数据呢? (我的意思是为什么不在首页查询数据库?)
  • @someOne,嗯,让我看看我最终得到了什么....谢谢

标签: php mysql include


【解决方案1】:

您可以通过 GET、Session 或 Post do that;但是为什么不简单有效地定义一个函数并将这些变量传递给它,例如:

function displayArticle($title, $summary, $content) {
    displayHeader(); // maybe some concepts you've used in template/common/header.php
    echo "<h1>$title</h1><p>$summary</p><div>$content</div>";
    displayFooter(); // again, what you've provided in footer.php
}

【讨论】:

    【解决方案2】:

    那么,您可以执行以下操作:

    template/homepage.php 文件更改为:

    <?php
    include 'template/common/header.php';
    
    echo "<h1>$articleName</h1>";
    echo "<p>$articleSummary</p>";
    
    include 'template/common/footer.php';
    ?>
    

    并将system/article.php 更改为:

    <?php 
    global $articleName;
    global $articleSummary;
    global $articleContents;
    
    $sql = "SELECT articleTitle, articleSummary, articleContent FROM articles";
    $result = $dbconnect->query($sql);
    
    if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
            $articleName = $row["articleTitle"];
            $articleSummary = $row["articleSummary"];
            $articleContents = $row["articleContent"];
    
            include 'template/homepage.php';
        }
    } else {
        echo "0 results";
    }
    

    但是,最好使用编程语言中的一些功能(例如使用函数和类)来创建更简洁、更可重用的代码:)

    【讨论】:

    • 谢谢,我不知道php中的oop。我可以管理的功能。你确定我应该在 while () 中包含 'template/homepage.php' 吗?
    • @ManishB 嗯,这是你原始帖子的逻辑,我只是​​保留了它;如果您不将include 放在那里,并将其放在代码的底部,那么它将仅在while() 循环结束后执行,并且无论外部if 语句如何,并且仅适用于最后项由fetch_assoc 获取(忽略前面的所有数据):)
    • 谢谢大佬,估计得找个更好的选择了。
    • @ManishB 欢迎您,程序方法非常简单直观,是首选方式;
    • 接受了你的第一个答案,不过是一个请求,如果可能的话,如果你能指导我进行在线教程,我会很高兴。