我从这样的数据库中生成动态内容:
$sql_select_items = $db->query("SELECT * FROM table WHERE ...);
然后它拉出结果,可能是一个或多个,如下所示:
while ($item_details = $db->fetch_array($sql_select_items))
{
$items_content =
'<table><tr> '.
'<td>RETRIEVED CONTENT HERE</td> '.
'</tr></table>';
}
然后,再往下,我输出生成的内容如下:
if ($section == 'summary_main')
{
$summary_page_content['content'] =
$summary_page_content['details'] .
$items_content .
$summary_page_content['messaging_received'] .
$summary_page_content['footer']
;
$template->set('members_area_page_content', $summary_page_content['content']);
}
除了$ items_content生成的内容外,一切都有效,无论是否有1或20,它只显示1个项目。我试图做一个
$items_content . =
而不是
$items_content =
但这似乎也没有用,只是给了我一个错误。
我做错了什么?
答案 0 :(得分:0)
在while循环之前(之前):
$items_content = '';
在while循环中:
$items_content .= '...';
这将确保您的$items_content
变量在循环之前存在,然后.=
会将您的字符串连接到$items_content
的结尾。
“我做错了什么?”
由于你没有发布错误,我只能假设你有一个未定义的变量通知,这是通过在循环之前放置$items_content = '';
来解决的,或者你得到一个语法错误,因为你应该是运算符使用是.=
而不是. =
(请注意空格不对。)
答案 1 :(得分:0)
它不是$db->fetch_array($sql_select_items)
它的$sql_selected_items->fetch_array()
。以下是我将如何做到这一点:
$table_rows = $db->query("SELECT * FROM table WHERE ...");
if($table_rows->num_rows > 0){
$table = '<table><tbody>';
while($row = $table_rows->fetch_object()){
$table .= "<tr><th>{$row->title_column_name}</th><td>{$row->other_column_name}</td></tr>";
}
$table .= '</tbody></table>';
}
else{
$table = '';
// no results
}
echo $table;
$table_rows->free(); $db->close();