分类我的foreach循环结果

时间:2015-04-01 06:34:49

标签: php mysql sql codeigniter foreach

我的SQL结果getResult有很多行,它们在Header和SubHeader的每一列中都有不同的值,所以我希望它被分类,现在我想为每个subHeader添加一个计算getResult行的总结果

$header = "";
$subHeader = "";
$getResult = "";

foreach($QueryMySql as row):

if($header != $row->headerColumn)
{
   $header = $row->headerColumn."<br />";
   $get .= $header;
}
if($subHeader != $row->subHeaderColumn)
{ 
   $subHeader = $row->subHeaderColumn."<br />";
   $get .= $subHeader;  
}
   $getResult = $row->getResultColumn."<br />";
   $get .= $getResult;

endforeach;

RESULT

  
     

美国位置(标题)

     

ICT部门(SubHeader)

     

1(emp_name)getResult

     

2(emp_name)getResult

     

3(emp_name)getResult

     

总计:3&lt; - 这是我想在输出中添加的

     

会计部门(副主席)

     

1(emp_name)getResult

     

2(emp_name)getResult

     

3(emp_name)getResult

     

4(emp_name)getResult

     

总计:4&lt; - 这是我想在输出中添加的

     

巴基斯坦(标题)

     

ICT部门(SubHeader)

     

1(emp_name)getResult

     

2(emp_name)getResult

     

3(emp_name)getResult

     

4(emp_name)getResult

     

总计:4&lt; - 这是我想在输出中添加的

     
     

印度(标题)

     

工程部(SubHeader)

     

1(emp_name)getResult

     

2(emp_name)getResult

     

3(emp_name)getResult

     

4(emp_name)getResult

     

总计:4&lt; - 这是我想在输出中添加的

2 个答案:

答案 0 :(得分:0)

我理解的是你想要计算列,如果没有更新你想要的输出,如果是,那么使用这个代码将计算所有记录并将结果保存在输出中:

$grandTtoal = 0;$tempHeader='';$tempSubHeader='';
foreach($QueryMySql as $OneRow){
    if($tempHeader == '' || $tempHeader != $OneRow->headerColumn)
    {
       echo $tempHeader = $OneRow->headerColumn."<br />";
    }
    if($tempSubHeader =='' || $tempSubHeader != $OneRow->subHeaderColumn)
    { 
       echo $tempSubHeader = $OneRow->subHeaderColumn."<br />"; 
    }
    for($i=0; $i<mysql_num_fields($OneRow);$i++ )
    {
         echo ($i+1).' '.$OneRow[$i]->getResultColumn."<br />";
    }
    echo "Total: ".$i;
    $grandTtoal += $i;        
}
echo "Grand Total: ".$grandTtoal;

第二个选项。

$grandTtoal = 0;$tempHeader='';$tempSubHeader='';
    foreach($QueryMySql as $OneRow){
        if($tempHeader == '' || $tempHeader != $OneRow->headerColumn)
        {
           echo $tempHeader = '<h1>'.$OneRow->headerColumn.'</h1>'."<br />";
        }
        if($tempSubHeader =='' || $tempSubHeader != $OneRow->subHeaderColumn)
        { 
           echo $tempSubHeader = '</h4>'.$OneRow->subHeaderColumn.'</h4>'."<br />"; 
        }
        for($i=0; $i<mysql_num_fields($OneRow);$i++ )
        {
             echo ($i+1).' '.$OneRow[$i]->getResultColumn."<br />";
        }
        echo "Total: ".mysql_num_fields($OneRow);
        $grandTtoal += mysql_num_fields($OneRow);        
    }
    echo "Grand Total: ".$grandTtoal;

答案 1 :(得分:0)

快速解决方案。

$head =array();$i = $j = $k = 1;
foreach($QueryMySql as $row){
    if($row->headerColumn == 'Header1'){
         if(!in_array('Header1', $head)){
            echo $row->headerColumn."<br/>";
            echo $row->subHeaderColumn."<br/>";
            $head[]   = $row->subHeaderColumn;     
         } 

         echo $i . $row->getResultColumn."<br />";
         $i++;

    }elseif($row->headerColumn == 'Header2') {
        if(!in_array('Header2', $head)){
            echo $row->headerColumn."<br/>";
            echo $row->subHeaderColumn."<br/>";
            $head[]   = $row->subHeaderColumn;     
         } 

         echo $j . $row->getResultColumn."<br />";
         $j++;

    }elseif($row->headerColumn == 'Header3') {
        if(!in_array('Header3', $head)){
            echo $row->headerColumn."<br/>";
            echo $row->subHeaderColumn."<br/>";
            $head[]   = $row->subHeaderColumn;     
         } 

         echo $k . $row->getResultColumn."<br />";
         $k++;
    }        
}