$db=mysql_connect($sql_class->host,$sql_class->user,$sql_class->password);
mysql_select_db($sql_class->dbname);
mysql_query("SET NAMES GBK", $db);
$result=mysql_query("select g_name,g_pass,g_type,collname from mygame_users",$db);
while ( $a = mysql_fetch_array($result))
{
$tpl->set_var('gname',$a[g_name]);
$tpl->set_var('gpass',$a[g_pass]);
$tpl->set_var('gtype',$a[g_type]);
$tpl->set_var('cname',$a[collname]);
$tpl->parse('L','list',true);
}
从数组中读出来数据 的显示 要和上面代码读出来的效果一样

解决方案 »

  1.   

    我用foreach 读数组 得到的小姑哦和while 读数据库的效果不同
    假设数据库表中有3行数据 直接用while在index.php里调用数据库查询 就可以 在前台 现显示3条
    但是用foreach只能现实最后一条  不知道 代码改怎么写
    如果你了解php 模版 并且仔细看下我的 帖子就应该能明白什么意思!
      

  2.   

    这个是foreach的代码,你试一下:
    include("./myclass.php");
    include("./template.inc");
    $sql_class=new main_class();
    $tpl = new Template; //创建一个新模板
    $tpl->set_file('index', 'fist.html');
    $tpl->set_block('index', 'list', 'L'); 
    $arr=$sql_class->user_array();
    //这里我要如何写才能得到像下面 代码实现一样功能?
    foreach($arr as $key=>$value)
    {
    foreach($arr[$key] as $k=>$v)
    {
    $tpl->set_var($key,$arr['gname'][$k]);
    //下面这句应该是放在这里,如果不是,楼主把这句话放到循环外部
    $tpl->parse('out','index'); // //完成替换
    }
    }
    $tpl->p('out'); // //输出替换的结果
      

  3.   

    搞错了,有一行写错了,改正了,用这个:
    include("./myclass.php");
    include("./template.inc");
    $sql_class=new main_class();
    $tpl = new Template; //创建一个新模板
    $tpl->set_file('index', 'fist.html');
    $tpl->set_block('index', 'list', 'L'); 
    $arr=$sql_class->user_array();
    //这里我要如何写才能得到像下面 代码实现一样功能?
    foreach($arr as $key=>$value)
    {
    foreach($arr[$key] as $k=>$v)
    {
    $tpl->set_var($key,$arr[$key][$k]);//修改了的代码
    //下面这句应该是放在这里,如果不是,楼主把这句话放到循环外部
    $tpl->parse('out','index'); // //完成替换
    }
    }
    $tpl->p('out'); // //输出替换的结果
      

  4.   

    按照你的代码 print 出来是对的  但是 放到fist.html模版后就  什么也不显示了
    print出来是这样的
    gname admin
    gname testuser
    gname testuser2
    gpass admin888
    gpass test123
    gpass test456
    gtype 1
    gtype 0
    gtype 0
    cname 极乐
    cname 测试机器人
    cname test3条数据没错~~~~我改成
    foreach($arr as $k1=>$v1)
    {
      foreach($v1 as $k2=>$v2)
      {
        print("$k1 ".$arr[$k1][$k2]."</br>");
        $tpl->set_var($k1,$arr[$k1][$k2]);
      }
      $tpl->parse('L','list',true);
    }
    现实出4条  "用户名是testuser2密码是test456类型是0. 昵称:test "
    奇怪数据一共3条 却执行了4次
    还有$tpl->parse('out','index');  方不方 循环里面我发现都一样
      

  5.   

    运行以下语句,看看是什么:echo "<pre>";print_r($arr);
      

  6.   

    结果是
    Array
    (
        [gname] => Array
            (
                [0] => admin
                [1] => testuser
                [2] => testuser2
            )    [gpass] => Array
            (
                [0] => admin888
                [1] => test123
                [2] => test456
            )    [gtype] => Array
            (
                [0] => 1
                [1] => 0
                [2] => 0
            )    [cname] => Array
            (
                [0] => 极乐
                [1] => 测试机器人
                [2] => test
            ))
      

  7.   

    使用这个代码,看看可以不。foreach($arr['gname'] as $key=>$value)
    {
    $tpl->set_var('gname',$arr['gname'][$key]);
    $tpl->set_var('gpass',$arr['gpass'][$key]);
    $tpl->set_var('gtype',$arr['gtype'][$key]);
    $tpl->set_var('cname',$arr['cname'][$key]);
    }
      

  8.   

    include("./myclass.php");
    include("./template.inc");
    $sql_class=new main_class();
    $tpl = new Template; //创建一个新模板
    $tpl->set_file('index', 'fist.html');
    $tpl->set_block('index', 'list', 'L'); 
    $arr=$sql_class->user_array();
    //这里我要如何写才能得到像下面 代码实现一样功能?
    foreach($arr['gname'] as $key=>$value)
    {
    $tpl->set_var('gname',$arr['gname'][$key]);
    $tpl->set_var('gpass',$arr['gpass'][$key]);
    $tpl->set_var('gtype',$arr['gtype'][$key]);
    $tpl->set_var('cname',$arr['cname'][$key]);
    }
    $tpl->p('out'); // //输出替换的结果
      

  9.   

    交流的还挺快。
    要善用调试嘛。
    看执行sql查询后,数组是什么样子。