Я выполняю запрос по трем столбцам; один столбец содержит текст, остальные два содержат числа. Я делаю расчет на этих числах, чтобы получить новый номер с именем $ average. Затем я выплевываю результат в таблицу html. Строки в таблице сортируются в том порядке, в котором они выходят из базы данных. Я пытаюсь сортировать таблицу так, чтобы данные отображались с наивысшего значения $ average до самого низкого (при этом все еще правильно связаны с правильным текстовым значением из первого столбца).php, сортировать массив из mysql
Я пробовал некоторые asort
и foreach
, но мне удалось только создать беспорядок ошибок.
Любые идеи как я об этом? Спасибо.
Это текущее состояние игры:
/ db query
if (!$result = mysqli_query($link,"SELECT quiz_name,
quiz_attempts,
cumulative_score
FROM scoredata")) {
echo("There was a problem: " . mysqli_error($link));
exit();
}
...
// got results?
if(mysqli_num_rows($result) >= 1) {
$output = "";
$output .= "<table>\n";
$output .= "<tr><th>Quiz name</th> <th>Played</th> <th>Avg. score</th></tr>\n";
while($row = mysqli_fetch_array($result)) {
$output .= "<tr><td>".str_replace('_', ' ', $row['quiz_name']) . "</td>";
$output .= "<td>" . $row['quiz_attempts'] . "</td>";
// calculate average score
$average = $row['cumulative_score']/$row['quiz_attempts'];
$output .= "<td>" . round($average,2) . "</td></tr>";
}
$output .= "</table>\n";
echo $output;
}
...
Вы можете сортировать данные в вашей БД - нет необходимости Сортируйте его после получения. – Artur
и выполните расчеты с вашим запросом. –
Есть ли причина, по которой вы не можете сортировать в своем SQL-запросе? –