こんにちは私はデータベースから最も高い点でトップ10の結果を得る簡単なスクリプトを作成しました。ここにコード:PHPとMySqlクエリ
<html><head><title>MySQL Table Viewer</title></head><body>
<?php
$db_host = 'localhost';
$db_user = 'aa_quiz';
$db_pwd = 'mypassword';
$database = 'aa_quiz';
$table = 'aaresult';
if (!mysql_connect($db_host, $db_user, $db_pwd))
die("Can't connect to database");
if (!mysql_select_db($database))
die("Can't select database");
// sending query
$result = mysql_query("SELECT Candidate, Data5, Data3, OverAllScore, TotalPossibleScore, PercentageScore, PercentagePass, PassFail FROM {$table} WHERE QuizName='Test Quiz #505853118-1' ORDER BY OverAllScore DESC LIMIT 10");
if (!$result) {
die("Query to show fields from table failed");
}
$fields_num = mysql_num_fields($result);
echo "<h1>Table: {$table}</h1>";
echo "<table border='1'><tr>";
// printing table headers
for($i=0; $i<$fields_num; $i++)
{
$field = mysql_fetch_field($result);
echo "<td>{$field->name}</td>";
}
echo "</tr>\n";
// printing table rows
while($row = mysql_fetch_row($result))
{
echo "<tr>";
// $row is array... foreach(..) puts every element
// of $row to $cell variable
foreach($row as $cell)
echo "<td>$cell</td>";
echo "</tr>\n";
}
mysql_free_result($result);
?>
</body></html>
私は問題があります。人はクイズを1回以上受け取ることができます。その人がOverAllScoreでポイント数を2倍にした場合、トップ10には2回表示されます。そのため、上位10の結果Data3 coloumnは同じ値を超えて1回だけ表示され、OverAllScoreで数値が最も高い行が1回表示されます。
5月助けを借りてください。 http://dev.mysql.com/doc/refman/5.0/en/example-maximum-row.html – rd42