运行带变量的PHP循环

问题描述:

为解决方案搜索 - 找不到任何东西。也许我用错了词。运行带变量的PHP循环

我尝试拆分服务器端操作和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(); 
?> 

现在,我试图通过包括operation.php,并用它在index.php使用此像

<div><?php echo $title ?></div> 

一切正常,但我想循环这个div,并得到一个<div>数据库中的每一个“标题”行。

这怎么可能?

在此先感谢。

+0

在operation.php中格式化输出,除非您想要将所有数据检索为数组,然后在格式化时循环。 – 2014-10-17 13:03:52

+0

我认为这将是非常舒服的分裂的PHP和HTML,所以我想在operation.php避免HTML。编辑:但我会改变主意,如果这种方式更好! – Eric 2014-10-17 13:07:35

+0

我同意,为了查看您将不得不* *处理。我们一直这么做 - 将查询结果存储在一个对象中,然后在index.php中循环查看该对象。真的,你不应该在operation.php中循环,只是返回结果。然后遍历index.php中的结果。它会更清洁,你的代码将可重用。 – 2014-10-17 13:09:24

嗯,你可以在上面

$rows = array(); 
... 
while ($row = $result->fetch_assoc()) { 
    $rows[] = $row; 
} 
.... 

foreach($rows as $row) { 
    echo '<div>' . $row['title'] . '</div>'; 
} 

这可能是一个解决方案声明数组。

在另一方面,如果你想的逻辑和观点分开,你可以看看MVC设计模式,或使用模板引擎(如桂枝例如)

什么模板引擎允许你做的是这样的事情(未测试;-)

$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> 

我希望这帮助:)

+0

谢谢! 我是新来的PHP,并试图使用你的代码 - 但我得到一个错误,服务器无法获取mysqli结果。错误在哪里?我错了什么? – Eric 2014-10-17 13:27:19

+0

我用你的代码的一部分来说明你可以采取的另一种路径。 接下来,您需要用于模板工作的树枝库。 如果你是PHP的新手,编程这些基础知识可能是非常有益的,但也有很高的学习曲线。 我建议你从一个框架开始,为你做所有这些事情。 Populair框架例如Symfony,CakePHP,Kohana,Laravel等等。 这些框架在ususally有很好的教程如何去。 http://laravel.com/docs/4.2/quick http://kohanaframework.org/3。3/guide/kohana/install etcetera – Dennis 2014-10-17 13:40:50

+0

当您掌握使用框架的时候,您可以查看实际运行框架的代码,并查看它们如何解决特定问题,并从中学习,创建您自己的框架模块,处理框架项目中的错误等等。 此外,我强烈建议加入一个PHP用户组。我看到你来自斯图加特,我发现了这个:http://www.phpugs.de/ 通常有不同经验水平的人在那里。跟着一个谈话,跟一些人交谈,这通常可以给你一个PHP入门和一般编程。 – Dennis 2014-10-17 13:44:23