2010-06-10 2 views
0

Ниже мой код, и мне интересно, как показать ранг на таблице. У меня есть все звания, но я не могу показаться, чтобы ранг отображался с самого высокого до самого низкого в соответствии с итогами.Как мне показать ранг в таблице

<?php 
require_once 'DB.php'; 

$dsn = array(
    'phptype' => 'mysql', 
    'username' => 'root', 
    'password' => '', 
    'hostspec' => 'localhost', 
    'database' => 'ext', 
); 

$options = array(
    'debug'  => 2, 
    'portability' => DB_PORTABILITY_ALL, 
); 

$db =& DB::connect($dsn, $options); 
if (PEAR::isError($db)) { 
    die($db->getMessage()); 
} 

$data =& $db->getCol('SELECT Totals FROM class order by Totals desc'); 

if (PEAR::isError($data)) { 
    die($data->getMessage()); 
} 


$rank = 0; 
$lastScore = PHP_INT_MAX; 
foreach($data as $name=>$score) { 
    if ($lastScore !== $score) { 
    $lastScore = $score; 
    $rank += 1; 
    } 
    //printf("%s %d (%d)\n", $name, $score, $rank); 
    //printf($rank); 
} 
echo "<table border='1'> 
<tr> 
<th>Rank</th> 
<th>Eng_Grammar</th> 
<th>Eng_Composition</th> 
<th>Totals</th> 
</tr>"; 
$result = mysql_query("SELECT * FROM class order by Totals Desc"); 

while($row = mysql_fetch_array($result)) 
    { 

    echo "<tr>"; 
    echo "<td>" . $rank . "</td>"; 
    echo "<td>" . $row['Eng_Grammar'] . "</td>"; 
    echo "<td>" . $row['Eng_Composition'] . "</td>"; 
    echo "<td>" . $row['Totals'] . "</td>"; 
    echo "</tr>"; 
    } 
echo "</table>"; 


?> 

ответ

Смежные вопросы