function smarty_function_shownews($params,&$smarty){
extract($params);

   $type = (null != $type) ? $type : "1";    $order = (null != $order) ? $order : "id";   $limit = (null != $limit) ? $limit : 7; 
   $listName = (null != $listName) ? $listName : "newsList"; $str = (null != $str) ? $str :"*"; $table = (null != $table) ? $table :"art";
 
$strsql=mysql_query("select * from message where `show`=$type order by $order desc limit 0,$limit");
while(($rs = mysql_fetch_array($strsql)))
      {
  $newList[] = array("mid"=>$rs["mid"],"mtit"=>$rs["mtit"],"mname"=>$rs["mname"],"mhit"=>$rs["mhit"]);
  }
我想写个函数,在这个中 $newList[] = array("mid"=>$rs["mid"],"mtit"=>$rs["mtit"],"mname"=>$rs["mname"],"mhit"=>$rs["mhit"]);
因为不同地方 所要用的字段也是不一样的,有没有办法把mid"=>$rs["mid"],"mtit"=>$rs["mtit"],"mname"=>$rs["mname"],"mhit"=>$rs["mhit"]这些变成动态的

解决方案 »

  1.   

    $newList = new Array();
    while(($rs = mysql_fetch_array($strsql))){
        foreach($rs as $key => $value){
            array_push($newList, $key, $value);
        }
    }
      

  2.   

    $params中加一个'fields' => 'mid, mtit....'$strsql=mysql_query("select ".(!empty($fields) ? : $fields : '*')." from message where `show`=$type order by $order desc limit 0,$limit");
    while(($rs = mysql_fetch_array($strsql, MYSQL_ASSOC)))
      {
    $newList[] = $rs;
    }