没看懂eval("\$mtv = \"$mtv\";"); 的意义,这不就是$mtv=$mtv;吗?
可能是:
如果,
$mtv= '<div class=user_tv_block>$info_arr[title] </div>';  
就没变化;如果,
$mtv= "<div class=user_tv_block>$info_arr[title] </div>";
就有变化。  

解决方案 »

  1.   

    因为你第一次循环的时候mtv中的$info_arr[title]变量已经被代替所以你的数组里循环多少次都只是第一次的结果
      while($info_arr=$empire->fetch($result))  
          eval   ("\$mtv   =   \"$info_arr[title]\";");  
          $info_list.=$mtv.'</br>';  
      } 
    试试!还有楼主是压根没睡还是起的太早了!
      

  2.   

    这样的确行,但是我看了网上的EVAL函数的解释只是知道它是把子串当成PHP代码处理,那么我想知道
    为什么
    eval("\$mtv = \"$mtv\";");不行,而eval ("\$mtv   =   \"$info_arr[title]\";"); 这样就可以
    我的理解是eval("\$mtv = \"$mtv\";");$mtv其实代表一个整句,这事整句中的变量已经替换成值,
    所以$mtv是<div class=user_tv_block>替换了的值</div>',固然下一次循环就没有可替换的变量了而 ("\$mtv   =   \"$info_arr[title]\";"); 是直接将数组变量放在那里,那么每次都先替换变量所以没错
    应该是这样理解,我自己想了一个方法,结果成功了
    eval("\$mtv1 = \"$mtv\";"); 变成mtv1,那么每次$mtv都是原始带有为替换的变量的字符串,谢谢朋友的提示,