sql >> データベース >  >> RDS >> Mysql

1つのクエリでmysqlテーブルからrowspanを使用してhtmlテーブルを作成しますか?

    いい質問です。行スパンの計算は、請求書を数えることによって行われます。これが私が思いついたコードです:

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

    これにより、必要に応じてテーブルが生成されます。わからないことがあればコメントして説明します



    1. SQLで列の最小値を見つける方法

    2. GraphQL-引数に依存する計算された型を返します

    3. オフセット制限のあるクエリの選択が遅すぎる

    4. Oracleはselectからより多くの列を持つテーブルに挿入します