需要帮助嵌套代码以便于复制

时间:2016-02-17 05:41:56

标签: php mysql pdo

我的代码正在运行,但我想知道如何将select尽可能动态的列传递给我。如果我想扩展我的代码以在页面上包含三个或四个查询,理想情况下我只想复制前三行代码和最后一行调用该函数。

例如,如果我有另一个查询从另一个表调用六个列,我只想将via函数参数中的列传递给foreach结果,而不是在命名每个列时使用printf。 / p>

我认为代码可以更容易地复制,但是我很难搞清楚。

还想知道我是否可以像使用结果上的标题一样使用列表/每个。

    foreach ($result as $key => $value) {
        printf("<tr><td>%s</td><td>%s</td><td>%s</td></tr>", $value['teamid'], $value['teamname'], $value['captain'] );
    };

    echo "</table>";
}

// close the database connection
$dbh = null;

displayresults($showTeamInfo,$showTeamInfoTitles,$whichteam);

如何嵌套这个,所以我不必打电话给$ value [&#39;队长&#39;]例如

SELECT hometeam, awayteam, gamedate, arena FROM schedule WHERE hometeam = ? OR awayteam = ?

另一个查询可能会获取该团队的日程安排并将其显示在同一页面上:

T

因此,在printf中我每次都必须对每列进行硬编码。

1 个答案:

答案 0 :(得分:0)

有两个错误的前提导致你回答这个问题:

  1. 您将在从数据库获取查询结果的同一函数中显示查询结果。多年来,这被认为是不可接受的做法。您应该使用 templates 作为输出。
  2. 您的印象是,您的所有查询都会像简单的查询一样愚蠢。实际上,SQL功能更强大,真正的查询要复杂得多。
  3. 因此,您必须使用两个函数vectorfetchanddisplayresults(),而不是单个函数fetchresults()。虽然后者可以按照您想要的方式确定,但前者必须更灵活,允许任何SQL运行。

    此外,您必须确保displayresults()每次调用时都不会连接到数据库。

    所以这将是一个像这样的代码。对于查询运行函数,我建议使用PDO wrapper of mine

    database_connect()