2014-10-17 89 views
0

爲解決方案搜索 - 找不到任何東西。也許我用錯了詞。運行帶變量的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

回答

1

嗯,你可以在上面

$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