2013-07-27 2 views
0

도와주세요! 테이블에서 스마트하게 데이터를 전송하는 방법은 무엇입니까?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; 
}