Mysql
 sql >> база данни >  >> RDS >> Mysql

Mysql показва редовете като колони

Първо трябва да транспонирате всички данни във временен масив, преди да можете да ги изведете отново. Ще ви дам 2 начина да направите това.

Метод 1:просто извлечете всеки ред и превключете индекса на реда с индекса на колоната:

<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>

Метод 2:Извличане на всички редове в масив, така че той да стане масив от масиви и използвайте array_map с обратно извикване NULL за да го транспонирате (Вижте пример 4 в http://php.net/manual /bg/function.array-map.php ).Трябва да добавите имената на курсовете в първоначалния масив, за да ги включите в крайния резултат.

<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. ИЗБЕРЕТЕ една колона, ако другата е нула

  2. Как да задам MySQL като база данни по подразбиране в Rails 3?

  3. Настройте база данни и създайте потребител само за четене в AWS Redshift и Mysql

  4. Mysql:Оптимизиране на намирането на супер възел във вложено дърво на набори

  5. Как да получите достъп до уеб услуга на MySQL база данни през LAN?