基本上,我正在尝试整理代码清理工具。我有一堆SQL查询,我将其存储在名为Queries.PHP的文件中。例如:
//Queries.php
//Connects to Database
$dbh=mysql_connect ("localhost", "~", "~") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ("~") or ("Database not found");
function hi3() {
$query = "SELECT AVG(NULLIF(`~`, 0)) FROM `~` WHERE `~` BETWEEN '~' AND '~';";
$result = mysql_query($query) or die ( $result.mysql_error());
$row = mysql_fetch_array($result);
echo "~";
}
然后,在一个单独的页面上,我有代码构建HTML表头和构建内容的单独函数:
include Queries.php;
function BuildHTMLTableHeaders {
echo HTML table headers;
BuildHTMLTableBody();
echo </table>;
}
function BuildHTMLBody {
echo <tr>;
echo <td>;
hi3();
echo </td>;
echo </tr>;
...
}
现在,这是我的问题:当我调用hi3()时,表的其余部分不会构建。为什么呢?
答案 0 :(得分:0)
您在BuildHTMLBody中的逻辑是有缺陷的。你只会回应1个表行/单元格,因为你没有遍历从函数中得到的结果。
function hi3() {
$query = "SELECT AVG(NULLIF(`~`, 0)) FROM `~` WHERE `~` BETWEEN '~' AND '~';";
$result = mysql_query($query) or die ( $result.mysql_error());
return $result;
}
function BuildHTMLBody {
$rows = hi3();
while($row = mysql_fetch_array($rows)) {
echo '<tr>';
echo '<td>' . $row['data'] . '</td>';
echo '</tr>';
}
}
注意我返回hi3()的结果并将结果分配给BuildHTMLBody()中的变量并循环遍历它们。
我没有测试过这个,所以我不确定是否有任何语法错误。另外,我建议使用mysqli_。不推荐使用mysql_。