sql >> Databáze >  >> RDS >> Mysql

Vytvořit html tabulku s rozpětím řádků z tabulky mysql jedním dotazem?

Pěkná otázka, výpočet rowspan se provádí počítáním faktur. Zde je kód, se kterým jsem přišel:

<?php

    /**
     * @author Truth
     * @copyright 2011
     */

    $dsn = "mysql:host=localhost;dbname=test";
    $dbc = new PDO($dsn, 'root', 'pass');

    $query = 'SELECT * FROM invoice';
    $stmt = $dbc->prepare($query);
    $stmt->execute();

    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        $result[$row['client_id']][] = $row['invoice_id'];
    }

?>
<!DOCTYPE html>
<html>

    <head>
        <!-- Metas -->
        <meta http-equiv="content-type" content="utf-8" />
        <meta name="author" content="Truth" />

        <title>Invoice Rowspan Example</title>

    </head>

    <body>

        <table id="invoices" border="1">
            <thead>
                <th>Client</th>
                <th>Invoices</th>
            </thead>
            <tbody>
                <?php

                    foreach($result as $id => $invoices) {
                        echo '<tr>';
                        echo '<td rowspan='. count($invoices) . '>' . $id . '</td>';
                        $count = 0;
                        foreach ($invoices as $invoice) {
                            if ($count != 0) {
                                echo '<tr>';
                            }
                            echo "<td>$invoice</td>";
                            echo "</tr>";
                            $count++;
                        }
                    }

                ?>
            </tbody>
        </table>

    </body>
</html>

Tím se vygeneruje tabulka podle vašich požadavků. Pokud něčemu nerozumíte, napište komentář a já vám to vysvětlím



  1. Jak odstranit správné odsazení u názvu dne v Oracle

  2. Jak vyřešit chybu mysql portu 3306 na wamp?

  3. mysql:hledání řádků, které mají více značek a stejné id

  4. max(délka(pole)) v mysql