使用函数从外部php文件回显SQL结果

使用函数从外部php文件回显SQL结果,php,mysql,echo,Php,Mysql,Echo,当我尝试制作一个“模板引擎”时,我得到了奇怪的结果。基本上,我希望能够使用包含SQL数据库数据的PHP变量 所发生的事情是,PHP端的一切都正常工作,但需要显示此信息的页面(index.PHP)却不正常 我正在研究一种从sql数据库中获取网站名称的方法,因此我的索引中有类似的内容: <?php include ('php/data/sitename.php'); ?> <!DOCTYPE html> <html> <head&

当我尝试制作一个“模板引擎”时,我得到了奇怪的结果。基本上,我希望能够使用包含SQL数据库数据的PHP变量

所发生的事情是,PHP端的一切都正常工作,但需要显示此信息的页面(index.PHP)却不正常

我正在研究一种从sql数据库中获取网站名称的方法,因此我的索引中有类似的内容:

 <?php 

 include ('php/data/sitename.php');

 ?>

 <!DOCTYPE html>
  <html>
    <head>
    <title><?php echo $sitename; ?> - Home</title>
      <!--Import Google Icon Font-->
      <link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
      <!--Import materialize.css-->
      <link type="text/css" rel="stylesheet" href="css/materialize.min.css"  media="screen,projection"/>
      <!--Let browser know website is optimized for mobile-->
      <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    </head>
    <body>
    <div class="container">
        <!-- HEADER: Navbar -->
        <?php $navbar; ?>
        <!-- MAIN: Index Page contents -->
        <?php $page_index ?>
        <!-- FOOTER: Footer -->
        <?php $footer; ?>
        <?php $sitename; ?>
    </div>
      <!--Import jQuery before materialize.js-->
      <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
      <script type="text/javascript" src="js/materialize.min.js"></script>
    </body>
  </html>

-家
此变量来自一个名为sitename.php的文件(已包含),其代码如下:

<?php
include ('../db.php');

$sql = "SELECT id, sitename FROM GeneralData";
$getname = mysqli_query($conn, $sql);

if ($getname->num_rows > 0) {
    while($row = $getname->fetch_assoc()) {
        $sitename = $row['sitename'];
        echo $sitename;
    }
}




?>

是的,我使用了echo$sitename;,我知道它不会反映实际数据,但我这样做是为了测试一些东西,结果如下:

  • 将文件sitename.php包含到index.php中不会起任何作用,就像它不存在一样。然而,若我在上面写上“echo”123“;,它将在索引上echo 123。不起作用的是我需要的

  • 如果我直接转到sitename.php,它只会输出我请求的正确SQL值,因为我告诉它echo(如我前面所述)。但是,它在索引中不起作用,它根本不起作用

另外,我将把我的项目结构留在这里。这可能会有帮助。

我能做什么?
提前谢谢

尝试设置站点名称的
全局

GLOBAL $sitename;

编辑 试用


您需要使用
eval()
从变量执行PHP代码。这是一个非常糟糕的主意。你应该使用一个真正的模板库,而不是将变量放入数据中。我应该怎样做?我认为这是一个范围问题。因为var是在另一个文件中声明的,所以它不是主文件中的“可见”。在if语句之前,添加全局$sitename='';看看这是否有效。你知道$sitename;不是一个全局变量对吗?你想当点击sitename时,会直接指向sitename.php对吗?您尝试添加
href
抱歉的人。正确检查您的文件路径。使用“%$path=“../db.php”;如果(file_exists($path)){include$path;}否则{die({$path}…);}好的,我稍后会检查这个。也请原谅我虐待了你,我不该这么做,你只是想帮忙。对不起,谢谢!不正确地阅读问题是我的错。希望对你有帮助
GLOBALS['sitename'];
$sitename = ...
   $path = $_SERVER['DOCUMENT_ROOT'];
   $path .= "/yourpath/yourfile.php";
   include_once($path);