Как я могу сгруппировать значения из базы данных, используя <td>и rowspan? - PullRequest
0 голосов
/ 30 июня 2018

Итак, я читаю некоторые значения из базы данных. Например, «результат», «команда», «лига» из базы данных. Я пытаюсь отобразить в <table> результаты конкретной команды, сгруппированной по лиге, что-то вроде этого:

Picture

Предполагается, что моя база данных содержит следующие данные:

result1     team1   league1
result2     team1   league1
result100   team1   league2
result101   team1   league2
result88    team1   league2

Я много чего перепробовал, и все же не могу заставить его работать. Кроме того, ячейка лиги должна иметь rowspan, равную количеству результатов, обнаруженных в конкретной лиге. Это можно сделать с помощью mysql_num_rows, но я точно не знаю, где его разместить. Так как я могу заставить эту таблицу работать? Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 30 июня 2018

Я попытался как-нибудь, и это сработало для меня. Надеюсь, это сработает для вас Посмотрите на код:

$db = new PDO('mysql:host=localhost;dbname=you_dbname', 'user', 'password');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = 'SELECT league, result, team FROM matches_info';
$stmt = $db->query($sql);
echo "<table border=\"1\">";
while($row = $stmt->fetch()){
    echo '<tr>
    <td rowspan="3">'.$row['pcid'].'</td>
    <tr><td>'.$row['pid'].' got '.$row['pc_lect_num'].' </td></tr>
    <tr><td>'.$row['pid'].' got '.$row['pc_lect_num'].'</td></tr></tr>';
}
echo "</table>";

Это очень просто, вы можете добавить больше функций для улучшения его функциональности.

0 голосов
/ 30 июня 2018

Группировать вывод по лиге - это просто разбить результаты вашего запроса. Так как ваш вопрос не включите вашу схему таблицы или любой PHP-код, я сделал некоторые предположения о вашей таблице и оставлю открытие соединения с вашей базы данных и выполнения инструкции sql для вас.

$qstr = "SELECT league, team, event
FROM table
ORDER BY league, team, event";

//  Execute query, get results into  associative array $allrows

$league = "";
$col1 = "";
$col2 = "";
echo "<table>\n";
foreach($allrows as $rowno => $row) {
    if($league != $row['league']) {
        if($league != "") {
            echo "<tr>\n";
            echo "<td>".$col1."</td>";
            echo "<td>".$col2."</td>";
            echo "</tr>\n";
        }
        $league = $row['league'];
        $col1 = $league;
        $col2 = "";
    }
    $col2 .= $row['team']." got ".$row['event']."<br />\n";
}
echo "<tr>\n";
echo "<td>".$col1."</td>";
echo "<td>".$col2."</td>";
echo "</tr>\n";
echo "</table>\n";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...