本帖最后由 xuzuning 于 2010-08-31 15:32:43 编辑

解决方案 »

  1.   

    你的循环条件是while(1),当然死循环!
      

  2.   

    这个条件不满足,永远也跳出循环
      if ( !( $mode2 = $_SGLOBAL['db']->fetch_array( $query ) ) )
      {
      break;
      }
      

  3.   

    看着真眼花
    你整个do while就是个死循环 只有一个break  跳出条件取决于if ( !( $mode2 = $_SGLOBAL['db']->fetch_array( $query ) ) )   你测试下吧
      

  4.   

    while(1)这里我试过while($i<1);,但是有些东西都读取不出来。$mode2[money] = $mode2[bounty] - $mode2[bounty] * $config[taskmoney];
      $mode2[pmoney] = round( ( $mode2[bounty] - $mode2[bounty] * $config[taskmoney] ) / $mode2[pnum], 2 );
      $listmode2[] = $mode2;
    就是这块东西读取 不出来
      

  5.   

     if ( !( $mode2 = $_SGLOBAL['db']->fetch_array( $query ) ) )
            {
                break;
            }这块不可能是空的啊。。死循环。悲哀帮帮忙吧
      

  6.   

    这个帮不了你,因为涉及到业务逻辑的问题,别人都清楚,只有你自己最清楚。
    已经告诉你问题的原因了,就是没有满足跳出条件,至于这个跳出条件怎么设是业务逻辑的问题,只有你自己知道。记住,break只能跳出一层循环,你有两个while循环,要设两个break;
      

  7.   

    你的控释逻辑有问题!
    在你的所有 SQL 指令中 都有  tid=".$task[tid]. 的条件
    而在跳出循环这里的条件最宽松
            $query = $_SGLOBAL['db']->query( "SELECT * FROM ".wk( "mode2" )." WHERE tid=".$task[tid]." ORDER BY mid ASC" );
            if ( !( $mode2 = $_SGLOBAL['db']->fetch_array( $query ) ) )
            {
                break;
            }
    即便其他的查询都没有结果,在这里至少也应该有一条记录。这就是导致死循环的原因
      

  8.   

    那也不是!
    有点不明白,你为什么要 while(1) 呢?你在 #5 说不这样有些东西出不来
    但你整个循环中并没有改变查询条件(与第一次进入时相比),转多少次也还是那些东西能描述一下你打算做什么吗?
      

  9.   

      $query = $_SGLOBAL['db']->query( "SELECT * FROM ".wk( "mode2" )." WHERE tid=".$task[tid]." ORDER BY mid ASC" );
     while ($mode3 = $_SGLOBAL['db']->fetch_array( $query )){
            $mode3[money] = $mode3[bounty] - $mode3[bounty] * $config[taskmoney];
            $mode3[pmoney] = round( ( $mode3[bounty] - $mode3[bounty] * $config[taskmoney] ) / $mode3[pnum], 2 );
            $listmode3[] = $mode3;}
            $listmode2 = array( );
            $query = $_SGLOBAL['db']->query( "SELECT * FROM ".wk( "mode2" )." WHERE tid=".$task[tid]." ORDER BY mid ASC" );
            if ($mode2 = $_SGLOBAL['db']->fetch_array( $query )  )
            {
                break;
            }我改成这样:能读出来。。但是有些又错了
      

  10.   

    <a href="javascript:var awardnum=document.getElementById('mode2_award').value;apply_draft('$value[did]','$task[tid]','$value[uid]','$value[username]','$task[uid]','$task[username]',awardnum,'$task[taskmode]');" onclick="return confirm('本操作不可恢复,确认采纳 $value[did] 稿件并支付吗?');"></a>请问这个提交以后是提交到哪的啊?
      

  11.   

    break 
    while(true)//和while(1)一样 不停循环!