在单独的PHP函数构建HTML表中调用包含SQL查询的PHP函数?

时间:2015-08-18 02:21:10

标签: php html

基本上,我正在尝试整理代码清理工具。我有一堆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()时,表的其余部分不会构建。为什么呢?

1 个答案:

答案 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_。