Прежде чем я отвечу на ваш вопрос, важно знать о вашей очевидной дыре в безопасности в вашем коде, которая является SQL-инъекцией : вы не экранируете ввод перед вводом в SQL-запрос.($_POST["r_id"]
)
Теперь по вашему вопросу все, что я сделал, это сделал массив, и в цикле while я вводил строки, сгруппированные по "linha", а затем выводил, используя два foreach
.Я также избежал ввода для вас, в запросе SQL.(mysqli_real_escape_string
)
if (isset($_POST["r_id"])) {
$output = '';
$query = "SELECT * FROM relatorioc WHERE datas = '" . mysqli_real_escape_string($conn, $_POST["r_id"]) . "'";
$res = mysqli_query($conn, $query);
$data = [];
while ($row = mysqli_fetch_array($res)) {
$data[$row['linha']][] = $row;
}
$output .= '';
foreach ($data as $linha => $items) {
$output .= '<p>' . $linha . '</p>';
$output .= '
<div class="table-responsive">
<table class="table table-bordered">';
foreach ($items as $row) {
$output .= '
<tr>
<td>' . $row['linha'] . '</td>
<td>' . $row['user'] . '</td>
<td>' . $row['prob'] . '</td>
<td>' . $row['res'] . '</td>
<td>' . $row['timep'] . '</td>
<td>' . $row['timei'] . '</td>
</tr>';
}
$output .= '</table></div>';
}
echo $output;
}