[英]Is there a better way to include() a PHP loop that depends on a varying MySQL query?
我有一个很大的PHP循环,正在网站的多个页面上的多个位置重复使用。 我通常只使用include()在需要的地方设置该PHP循环,但是有问题的PHP循环利用了一个MySQL查询,在该查询中我需要为此变量的不同实例更改变量(不同的过滤器和不同的LIMIT) 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():提供的参数不是第3行/home/filepathhere/includedfile.php中的有效MySQL结果资源”
我感觉包含的PHP正在包含文件中运行,然后被注入到主页中。 我需要在运行之前将代码注入主页。
有没有比“ include()”更好的方法将PHP循环注入到主页中?
似乎是学习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');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.