2012-03-15 79 views
0

用下面的代码:分组结果和排序输出

$result3 = mysql_query("SELECT TIP,GRUPA FROM test1 GROUP BY GRUPA,TIP ORDER BY GRUPA ASC, TIP ASC") or die(mysql_error()); 
$group = null; 
while($row = mysql_fetch_array($result3)) 
{ 
    if($row['GRUPA'] != $group) 
    { 
     echo $row['GRUPA']."<br />"; 

     $group = $row['GRUPA']; 

    } 

    echo $row['TIP']."<br />"; 

} 

它告诉我的结果是这样的:

FRUITS 
apples 
pears 
....... 
VEGETABLES 
onion 
carrot 
....... 

但是,我想显示的结果是这样的:

apples 
pears 
........ 
FRUITS 
onion 
carrot 
........ 
VEGETABLES 

如何更改代码?

回答

0

尝试这样的事情,并告诉我从print_r的)结果(:)

$new_arr = array(); 
    $group = null; 
    while($row = mysql_fetch_array($result3)) 
    {  
     if($row['GRUPA'] != $group) 
     { 
      $new_arr[$row['GRUPA']] = array(); 
      $group = $row['GRUPA']; 
     } 

     array_push($new_arr[$group], $row['TIP']); 
    } 

    echo "<pre>"; 
    print_r($new_arr); 
    echo "</pre>"; 

然后更换:

echo "<pre>"; 
print_r($new_arr); 
echo "</pre>"; 

有:

foreach($new_arr as $ar => $vals) 
{ 
    foreach ($vals as $val) 
    { 
     echo $val.'<br />'; 
    } 
    echo $ar.'<br /><br/>'; 
} 
+0

结果是: Array ( [FRUITS] => Array ( [0] =>苹果 [1] =>梨 ) [蔬菜] =>数组 ( [0] =>洋葱 [1] =>胡萝卜 ) – tuxman 2012-03-15 08:34:54

+0

'的foreach(new_ $ 。ARR为$ AR => $瓦尔斯) \t { \t \t的foreach($瓦尔斯为$ VAL) \t \t { \t \t \t回波$ VAL '
'; \t \t} \t \t \t \t回声$ AR“。

'; \t}'这加上面的代码(我给了)应该做你想要的东西:) – 2012-03-15 08:47:24

+0

非常感谢你! – tuxman 2012-03-15 09:21:42