使用函数从外部php文件回显SQL结果
当我尝试制作一个“模板引擎”时,我得到了奇怪的结果。基本上,我希望能够使用包含SQL数据库数据的PHP变量 所发生的事情是,PHP端的一切都正常工作,但需要显示此信息的页面(index.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&
<?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);