Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Mysql wyświetla wiersze jako kolumny

Najpierw musisz transponować wszystkie dane w tymczasowej tablicy, zanim będziesz mógł je ponownie wyprowadzić. Dam ci na to 2 metody.

Metoda 1:po prostu pobierz każdy wiersz i zamień indeks wiersza według indeksu kolumny:

<table>
    <tr>
        <th>Subject</th>
        <th>year1</th>
        <th>year2</th>
        <th>year3</th>
    </tr>

    <?php
    $mysqli = new mysqli('localhost', 'user', 'pass', 'database');
    $id = 1;
    $report = array();
    $columnIndex = 0;
    $query = $mysqli->query("SELECT HTML, CSS, Js FROM term WHERE Stdid='$id'");
    while ($results = $query->fetch_assoc()) {
        foreach ($results as $course => $score) {
            $report[$course][$columnIndex] = $score;
        }
        $columnIndex++;
    }

    foreach ($report as $course => $results) { ?>
        <tr>
            <th><?php echo $course; ?></th>
            <?php foreach ($results as $score) { ?>
                <th><?php echo $score; ?></th>
            <?php } ?>
        </tr>
    <?php } ?>
</table>

Metoda 2:Pobierz wszystkie wiersze z tablicy, aby stała się tablicą tablic i użyj array_map z wywołaniem zwrotnym NULL transponować go (patrz przykład 4 w http://php.net/manual /pl/funkcja.array-map.php ).Musisz dodać nazwy kursów w początkowej tablicy, aby uwzględnić je w wyniku końcowym.

<table>
    <tr>
        <th>Subject</th>
        <th>year1</th>
        <th>year2</th>
        <th>year3</th>
    </tr>

    <?php
    $mysqli = new mysqli('localhost', 'user', 'pass', 'database');
    $id = 1;
    $data = array(array('HTML', 'CSS', 'Js'));
    $query = $mysqli->query("SELECT HTML, CSS, Js FROM term WHERE Stdid='$id'");
    while ($row = $query->fetch_assoc())
    {
        $data[] = $row;
    }
    $data = call_user_func_array('array_map', array_merge(array(NULL), $data));
    ?>

    <?php
    foreach ($data as $row): ?>
        <tr>
            <?php foreach ($row as $value): ?>
                <th><?php echo $value?></th>
            <?php endforeach; ?>
        </tr>
    <?php endforeach; ?>
</table>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Odpowiadający typ danych MySQL do Java Date()

  2. Nie można wykryć wartości null z JSON_EXTRACT

  3. Policz wiersze w MySQL wraz z rzeczywistą zawartością wiersza

  4. Jak sprawić, by aplikacja na Androida komunikowała się z zewnętrzną bazą danych MySQL?

  5. Porządkowanie wyniku MySQL ustawionego przez wartość MAX() innej tabeli