2013-07-27 2 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() функция ничего не возвращает, нужно добавить оператор возврата. Также неверно $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; 
}