我是剛剛接觸 smarty 模版引擎,所以對 smarty 理解不是很透徹.在用 smarty 時出現了這樣的問題。
在做一個網頁,需要用 smarty 迴圈列印從資料庫提取的內容,遇到了困難。首先是提取資料傳遞的問題,按書上說的是把從資料庫提取的內容放在一個數組中,傳遞給 smarty 模版,然後在模版中用 section 語句迴圈列印,但是始終沒有成功。因為對 section 的文法不太理解。在迴圈列印時,如果按文法寫 $article[line].id 就沒有輸出,我嘗試改成 $article.id,這樣編程迴圈列印其中某一個 id 的值很多遍,而不是把資料庫中的每一個id值列印出來。
我反思了一下,出現這些問題的原因就是 smarty 的理解不夠,只知其然而不知其所以然。 php 對我來說其實也是新事物,出現這些問題和對 php 中對資料庫的 select 也有關。我的 php 的 select 返回的結果也不是很清楚,書上只教了怎麼把結果用 while 迴圈列印,而沒有說返回的結果怎麼儲存。我自己根據
$result = mysql_query("SELECT * FROM article");while($row = mysql_fetch_array($result)){ echo $row[id];}
這段代碼,嘗試把返回的結果放在一個數組中,像這樣
$result = mysql_query("SELECT * FROM article");$row = mysql_fetch_array($result);$article = array('id' = $row[id], 'title' = $row[title]);
然後把 $article 傳遞給 smarty,代碼如下:
$smarty->assign('article',$article);$smarty->display(index.tpl);
但是在 index.tpl 中沒有輸出傳過去的資料,所以我想是不是我的提取並傳遞資料庫資料的方法有問題,因為不能深入理解,所以需要大家的幫忙了。我是一個新人,希望大家協助我時能講的詳細一些,讓我能理解內涵,做到知其然並知其所以然。
回複內容:
我是剛剛接觸 smarty 模版引擎,所以對 smarty 理解不是很透徹.在用 smarty 時出現了這樣的問題。
在做一個網頁,需要用 smarty 迴圈列印從資料庫提取的內容,遇到了困難。首先是提取資料傳遞的問題,按書上說的是把從資料庫提取的內容放在一個數組中,傳遞給 smarty 模版,然後在模版中用 section 語句迴圈列印,但是始終沒有成功。因為對 section 的文法不太理解。在迴圈列印時,如果按文法寫 $article[line].id 就沒有輸出,我嘗試改成 $article.id,這樣編程迴圈列印其中某一個 id 的值很多遍,而不是把資料庫中的每一個id值列印出來。
我反思了一下,出現這些問題的原因就是 smarty 的理解不夠,只知其然而不知其所以然。 php 對我來說其實也是新事物,出現這些問題和對 php 中對資料庫的 select 也有關。我的 php 的 select 返回的結果也不是很清楚,書上只教了怎麼把結果用 while 迴圈列印,而沒有說返回的結果怎麼儲存。我自己根據
$result = mysql_query("SELECT * FROM article");while($row = mysql_fetch_array($result)){ echo $row[id];}
這段代碼,嘗試把返回的結果放在一個數組中,像這樣
$result = mysql_query("SELECT * FROM article");$row = mysql_fetch_array($result);$article = array('id' = $row[id], 'title' = $row[title]);
然後把 $article 傳遞給 smarty,代碼如下:
$smarty->assign('article',$article);$smarty->display(index.tpl);
但是在 index.tpl 中沒有輸出傳過去的資料,所以我想是不是我的提取並傳遞資料庫資料的方法有問題,因為不能深入理解,所以需要大家的幫忙了。我是一個新人,希望大家協助我時能講的詳細一些,讓我能理解內涵,做到知其然並知其所以然。
$result = mysql_query("SELECT * FROM article");while($row = mysql_fetch_array($result)){$article = array('id' = $row[id], 'title' = $row[title]);}