Hello All!

I am trying to calculate the Median of an array. I was able to get the MIN, MAX, AVG, But I am having difficulty with the Median and the way the display sorts the information.

My Question is How do I get the Median, using a function individually for each status. (Status being A, C, E, L, P, W)


My Code is:
PHP Code:
    <?php
    
echo "<p><b>A</b> = Active, <b>E</b> = Expired, <b>L</b> = Canceled, <b>P</b> = Pending, <b>W</b> = Withdrawn</p>\n";
    
// COUNT STATUS
    
include '_inc/include.php';
    
$query "SELECT status, COUNT(status) FROM median GROUP BY status"
     
    
$result mysql_query($query) or die(mysql_error());

    
// Print out result
    
while($row mysql_fetch_array($result)){
    echo 
"There are "$row['COUNT(status)'] ." "$row['status'] ." items.";
    echo 
"<br />";
    }
    
?>
The display is:

A = Active, C = Closed, E = Expired, L = Canceled, P = Pending, W = Withdrawn
There are 6 A items.
There are 2 C items.
There are 9 E items.
There are 4 L items.
There are 2 P items.

My Code is:
PHP Code:
    <?php
    
// COUNT STATUS AND RETURN MINIMUM LIST PRICE

    
$query "SELECT listprice, status, MIN(listprice), COUNT(status) FROM median GROUP BY status"
     
    
$result mysql_query($query) or die(mysql_error());

    
// Print out result
    
while($row mysql_fetch_array($result)){
    echo 
"The MIN list price for the  "$row['COUNT(status)'] ." "$row['status'] ." is $" .    $row['MIN(listprice)'];
    echo 
"<br />";
    }
    
?>
The display is:

The MIN list price for the 6 A is $139900.00
The MIN list price for the 2 C is $149900.00
The MIN list price for the 9 E is $138000.00
The MIN list price for the 4 L is $229000.00
The MIN list price for the 2 P is $179000.00


The MAX and AVG is similar to the above.

I tried to include a function to calculate the Median (MED)

PHP Code:
    <?php
    
function median($arr)
    {
    
sort($arr);
    
$count count($arr); //count the number of values in array
    
$middleval floor(($count-1)/2); // find the middle value, or the lowest middle value
    
if ($count 2) { // odd number, middle is the median
        
$median $arr[$middleval];
    } else { 
// even number, calculate avg of 2 medians
        
$low $arr[$middleval];
        
$high $arr[$middleval+1];
        
$median = (($low+$high)/2);
    }
    return 
$median;
    }
     
    echo 
median(array($lp)) . "\n";  // 153500
    
echo "<p> </p>";
    echo 
median(array(4.17.21.79.34.43.2)) . "\n";       // 4.25
    
    
?>
This works for a static array, but how do I calculate it to look like the above MIN, MAX?

PHP Code:
    <?php
    $i
=0;
    while (
$i $num) {
    
    
$ld=mysql_result($result,$i,"listdate");
    
$cd=mysql_result($result,$i,"closedate");
    
$contractd=mysql_result($result,$i,"contractdate");
    
$s=mysql_result($result,$i,"status");
    
$scd=mysql_result($result,$i,"statuschangedate");
    
$wd=mysql_result($result,$i,"withdrawdate");
    
$cand=mysql_result($result,$i,"canceldate");
    
$lp=mysql_result($result,$i"listprice");
    
$sp=mysql_result($result,$i,"soldprice");
    
$gla=mysql_result($result,$i,"gla");
    
$b=mysql_result($result,$i,"built");
    
$o=mysql_result($result,$i,"owner");
    
$fs=mysql_result($result,$i,"fore");
    
$ss=mysql_result($result,$i,"shortsale");
    
$f=mysql_result($result,$i,"features");
    
?>
I think maybe the reason I having so much trouble with this is that the data in the table is uploaded via file upload (csv). But I didn't think that really had anything to do with it because the data is already there.