例子是这样的,数据库结构如下id      cons        to2
1        10          20
2        20          30
3        30          61
4        10          61
5        8           61
我要获取相应to2的cons列表
function jfls($userid) //积分历史 
{
$conzdy = mysql_connect("localhost","a0527232048","111111");
mysql_select_db("a0527232048",$conzdy);
$sql="select * from caifujifen where to2=".$userid."";
mysql_query("set names 'gbk'");
$jlj=mysql_query($sql,$conzdy);
while($row=mysql_fetch_array($jlj))
{
$jfls= $row[1];

}
return $jfls;
}
可 $this->assign('jfls',jfls($user_id));这样得到的值,只有一个,例如userid=61即to2=61时,明明结果有3个,但只输出一个。。请指教,谢谢。

解决方案 »

  1.   

    我试了直接 return $row[1];但输出字符串:array
      

  2.   

    $jfls= $row[1];  =>  $jfls[]= $row[1];
    具体结构不明,可以在return $jfls; 之前 print_r($jfls);exit;//设置个断点看看
      

  3.   

    因为return只能返回一个值,
    但我想让这个函数返回一个列表;
      

  4.   

    $jfls= $row[1]; => $jfls[]= $row[1];  这样改,就是数组了,不能满足要求么?
      

  5.   

    return Array
    (
    'v1' => $v1,
    'v2' => $v2,
    ....
    );
      

  6.   


    return  $row;这是return一个数组,但输出到smarty时,还是只能输出一个结果,实际应该有3个结果才对,,
      

  7.   

    函数里边:
    $row=mysql_fetch_array($jlj);
    return $row;php程序里边
    $this->assign('jfls',$row);页面里边
    <!--{foreach from=jfls item=data}-->
    <p>{data.to2}</p>
    <!-- {/foreach} -->
      

  8.   


    function jfls($userid) //积分历史 
    {
        $conzdy = mysql_connect("localhost","a0527232048","111111");
            mysql_select_db("a0527232048",$conzdy);
            $sql="select * from caifujifen where to2=".$userid."";
            mysql_query("set names 'gbk'");
            $jlj=mysql_query($sql,$conzdy);
            while($row=mysql_fetch_array($jlj))
            {
                $jfls[]= $row[1];//使用数组存储你的结果值
                
            }
            return $jfls;//返回数组
    }
      

  9.   


    function jfls($userid) //积分历史 
    {
        $conzdy = mysql_connect("localhost","a0527232048","111111");
            mysql_select_db("a0527232048",$conzdy);
            $sql="select * from caifujifen where to2=".$userid."";
            mysql_query("set names 'gbk'");
            $jlj=mysql_query($sql,$conzdy);
            $jfls = array();//定义结果存储器
            while($row=mysql_fetch_array($jlj))
            {
                $jfls= $row[1];//使用数组存储你的结果值
                
            }
            return $jfls;//返回结果数组}
      

  10.   

    1.将你要返回的值存在一个数组中
       将数组返回
    2.将你要返回的值用特殊符号连接 :1_5_sd
       再根据特殊符号拆分成数组  explode("_",return);
      

  11.   


    您好,我确实是这样做的,可只能调出一条来,不知为何。。函数function jfls($userid) //积分历史 
    {
    $conzdy = mysql_connect("localhost","a0527232048","1111111");
    mysql_select_db("a0527232048",$conzdy);
    $sql="select * from caifujifen where to2=".$userid."";
    mysql_query("set names 'gbk'");
    $jlj=mysql_query($sql,$conzdy);
    while($row=mysql_fetch_array($jlj))
    {
    return $row;
    }
     
    }程序里 $this->assign('jfls',jfls($user_id));smarty模板中{foreach from=$jfls item=jf }
    {$jf}
    {/foreach}只能调出一条
    28
    28
    2
    2
    61
    61
    20
    20
    测试加分
    测试加分
    1111111111
    1111111111而且还是重复的数据库结构如下图:其中user_id=61
    应该调出
    Array ( [0] => 28 [id] => 28 [1] => 2 [f1] => 2 [2] => 61 [to2] => 61 [3] => 20 [cons] => 20 [4] => 测试加分 [nr] => 测试加分 [5] => 1111111111 [thed] => 1111111111 ) 
    Array ( [0] => 27 [id] => 27 [1] => 2 [f1] => 2 [2] => 61 [to2] => 61 [3] => 20 [cons] => 20 [4] => 测试加分 [nr] => 测试加分 [5] => 1111111111 [thed] => 1111111111 ) 
    Array ( [0] => 25 [id] => 25 [1] => 2 [f1] => 2 [2] => 61 [to2] => 61 [3] => 10 [cons] => 10 [4] => 注册时系统赠送积分 [nr] => 注册时系统赠送积分 [5] => 1279174580 [thed] => 1279174580 ) 才算正常
      

  12.   

    //当数据不为空的时候,执行一次,就returen了,不再循环了//前面已有答案的,先循环,用数组保存结果,循环后面,才是return
    while($row=mysql_fetch_array($jlj))
    {
    return $row;
    }
      
      

  13.   


    当程序  $this->assign('jfls',jfls($user_id));模板:{foreach from=$jfls item=jf }
    {$jf}<br>
    {/foreach}时 还是只能调出一条,
      

  14.   


    您看我确实是这样写的,,while($row=mysql_fetch_array($jlj))
    {
    return $row;
    }
      

  15.   

    //while这部分,这样改$arr = array();//初始化一个数组
    while($row=mysql_fetch_row($jlj))
    {
      $arr[] = $row;//是$row[0], $row[1],这个你自己决定
    }
    //如果不知道结构,这里可以print_r($arr);exit;运行一下就明白了
    return $arr;//返回数组