我有一个大型的PHP循环,我在我的站点的多个页面上的多个点上重复使用它。我通常只需要使用include()来设置PHP循环,但是问题中的PHP循环使用了一个MySQL查询,在这个查询中,我需要为这个PHP循环的不同实例更改变量(不同的过滤器和不同的限制)。
<?php
$results = mysql_query("SELECT * FROM databaseName ORDER BY columnName DESC, otherColumnName DESC LIMIT 6", $connection);
if (!$results) {
die("Database Query Failed");
}
?>
<?php
while ($variable = mysql_fetch_array($results)) {
----Execute this loop----
};
?>然后我回忆起我需要它的地方
<?php include("/filepath/includedfile.php"); ?>所有操作都很好,直到我将实际的MySQL查询从包含的文件中取出,并将其放在包含PHP的每个实例之前(这样我就可以控制每个查询实例的某些变量)。现在,MySQL查询和包含的PHP循环似乎没有以相同的方式进行通信,我收到了以下警告:
“警告: mysql_fetch_array():MySQL提供的参数不是第3行/home/filepathhere/”<上的一个有效的MySQL结果资源
我觉得所包含的PHP正在包含的文件中运行,然后被注入到主页中。在运行之前,我需要将代码注入主页面。
有比"include()“更好的方法将PHP循环注入主页面吗?
发布于 2010-02-03 02:36:33
似乎是学习functions和function arguments的好时机。:)
详细说明:including文件是重用代码的一种方法,但正如您所经历的,没有控制的方法可以更改该代码的行为。函数具有一个明确定义的接口,可以将参数传递到函数中,您可以在函数内部使用该接口来更改其行为。
function my_big_loop($condition) {
// preparations
$condition = mysql_real_escape_string($condition); // always! even for simple examples. :)
$results = mysql_query("SELECT * FROM somewhere WHERE x = '$condition'");
// do loopy stuff
return $big_pile_of_HTML;
}
echo my_big_loop('somecondition');https://stackoverflow.com/questions/2189232
复制相似问题