$sql = "SELECT b.lotno as lotno,count(b.lotno) as count FROM `kw_manage` as a inner join `vp_barcode_2d_y` as b on a.packageno = b.packageno where a.cust_no = '".$newstr."' group by lotno order by lotno asc";
$result = mysql_query($sql);
while($var = mysql_fetch_array($result,MYSQL_ASSOC))
{
     echo $var['lotno'].' * '.($var['count']).'<br />';
}
得到结果:
3206 * 12
3207 * 63
3218 * 180能不能做到以下处理结果?当count对应的数量之和为100时,显示
3206 * 12
3207 * 63
3218 * 25
总和100之外的数据显示
3218 * 155

解决方案 »

  1.   

    $num = 0;
    while($var = mysql_fetch_array($result,MYSQL_ASSOC))
    {
      if($num + $var['count'] <= 100) {
         echo $var['lotno'].' * '.($var['count']).'<br />';
         $num = $num + $var['count'];
      }else {
         echo $var['lotno'].' * '.(100 - $num).'<br />';
         $num = $num + $var['count'] - 100;
         echo $var['lotno'].' * '. $num .'<br />';
      }
    }
      

  2.   


    假设数量设为120,得到的结果如下:
    3206 * 12
    3207 * 63
    3218 * 45
    3218 * 135
    能不能将3218 * 135 记入下一个while循环?
    也就是得到的第一个循环是
    3206 * 12
    3207 * 63
    3218 * 45
    下一个循环为
    3218 * 135这是我想得到的结果。
      

  3.   

    能不能像3楼的那个例子
    紫色的第一行应该得到结果
    3206 * 12
    3207 * 63
    3218 * 45
    紫色第二行应该得到结果
    3218 * 135(将这个结果记入下一个while循环)
    而不是得到这样的结果:
    第一行
    3206 * 12
    3207 * 63
    3218 * 45
    3218 * 135
    第二行
    3206 * 12
    3207 * 63
    3218 * 60
    3218 * 120
      

  4.   

    while($var = mysql_fetch_array($result,MYSQL_ASSOC))
    {
         $res[] = $var['lotno'].' * '.($var['count']);
    }这不就到数组里了吗?