2013-07-27 19 views
0

请帮助我!如何将数据从表格传输到smarty?PHP + Smarty + MySQL

功能:

public function getBanLog() { 
    global $mysqli; 
    $result = $query = $mysqli->query("SELECT * FROM `bans`") or die($mysqli->error); 
    $rows = array(); 
    while($row = $result->fetch_array(MYSQLI_ASSOC)) { 
     $rows[] = $row; 
    } 
} 

的index.php:

$user = new UserInfo(); 
$smarty = new Smarty(); 

$smarty->assign("userInfo", $user); 
$smarty->assign('ban', $user->getBanLog()); 
$smarty->display('template/ban.tpl'); 

ban.tpl:

{foreach from=$ban item=row} 
    <td>{$row.id}</td> 
    <td>{$row.banned}</td> 
    <td>{$row.admin}</td> 
    <td>{$row.reason}</td> 
{/foreach} 
+1

代码看起来不错什么问题呢? –

+0

这里唯一值得怀疑的是查询中缺少'WHERE'子句,它似乎会为所有用户返回所有禁令,而不仅仅是UserInfo()所隐含的用户。 –

+0

@dianuj'getBanLog()'不返回任何内容,并且'$ result = $ query = $ mysqli-> query' – bansi

回答

4

getBanLog()函数返回什么,需要添加一个return语句。另外$result = $query = $mysqli->..是不正确的。

试试这个

public function getBanLog() { 
    global $mysqli; 
    $result = $mysqli->query("SELECT * FROM `bans`") or die($mysqli->error); 
    $rows = array(); 
    while($row = $result->fetch_array(MYSQLI_ASSOC)) { 
     $rows[] = $row; 
    } 
    return $rows; 
}