搜索解决方案 - 一无所获。也许我使用了错误的术语。
我尝试拆分服务器端操作和html结构。所以我创建了两个不同的文件,首先是index.php
,然后是operation.php
。
在operation.php的内部,我做了一个mysqli查询,并将mysql表的内容提取到不同的变量中:
$query = "SELECT * FROM work";
if ($result = $mysqli->query($query)) {
while ($row = $result->fetch_assoc()) {
$title = $row["title"];
$desc = $row["desc"];
$id = $row["id"];
$date = $row["date"];
$time = $row["time"];
$kat = $row["kat"];
$user = $row["user"];
}
$result->free();
}
$mysqli->close();
?>
现在我尝试在index.php
中使用此功能,包括operation.php
并使用它
<div><?php echo $title ?></div>
一切正常,但我想循环这个div并为每个标题获得一个<div>
。数据库中的行。
这怎么可能?
提前致谢。
答案 0 :(得分:1)
好吧,你可以在顶部声明一个数组
$rows = array();
...
while ($row = $result->fetch_assoc()) {
$rows[] = $row;
}
....
foreach($rows as $row) {
echo '<div>' . $row['title'] . '</div>';
}
这可能是一个解决方案。
另一方面,如果要分离逻辑和视图,可以查看MVC设计模式,或使用模板引擎(例如Twig)
模板引擎允许你做的是这样的事情(未经测试; - )
$variables = array();
while ($row = $result->fetch_assoc()) {
$variables['rows'][] = $row;
}
$twig->render('index.html.twig', $variables);
在单独的index.html.twig中,您可以使用模板语言
...
<body>
{% for row in rows %}
<div>{{ row.title }}</div>
{% endfor %}
</body>
我希望这会有所帮助:)