【问题标题】:How to combine different data into one table row with multiple columns?如何将不同的数据组合成一个多列的表格行?
【发布时间】:2016-06-21 16:25:34
【问题描述】:

我有这张 RAW 表:

==================================================== == |编号 |姓名 |字段ID |信息1 |信息2 | ==================================================== == | 1 |测试名称1 | 1 |测试 1 |测试 2 | |----|------------|---------|------------|---------- -| | 2 |测试名称2 | 2 |测试 3 |测试 4 | |----|------------|---------|------------|---------- -| | 3 |测试名称2 | 2 |测试 5 |测试 6 | ==================================================== ==

我想使用'name'和'fieldid'作为表格的参考,看起来像这样:

======================================== |编号 |姓名 |字段ID |信息 | ======================================== | 1 |测试名称1 | 1 |测试1 | | | | |测试2 | |----|------------|---------|----------| | 2 |测试名称2 | 2 |测试3 | | | | |测试4 | | | | |测试5 | | | | |测试6 | ========================================



我的代码目前生成这个:

========================================== |编号 |姓名 |字段ID |信息 | ========================================== | 1 |测试名称1 | 1 |测试1 | | | | |测试2 | |----|------------|------------|----------| | 2 |测试名称2 | 2 |测试3 | | | | |测试4 | | | | |测试6 | |----| |-----------|---------|------------ | 3 | |测试名称2 | 2 |测试 5 | | | | | |测试 4 | | | | | |测试 6 | ==================================================== ===

代码如下:

<?php $counter = null;?>
    <?php
        $code1 = "SELECT * FROM tableq";
        $query1 = $conn->query($code1) or trigger_error($conn->error.[$code1]);

        echo ("
            <table>
                <tr>
                    <th>ID</th>
                    <th>Name</th>
                    <th>Field ID</th>
                    <th>Info</th>
                </tr>
        ");

        if($query1->num_rows > 0){
            while($row1 = $query1->fetch_assoc()){
                echo ("
                    <tr>
                        <td>".$row1['id']."</td>
                ");

                if($counter == ""){
                    $counter = "1";
                }
                else if($counter == "4"){
                    $counter = $counter / 2;
                }

                $code2 = "SELECT * FROM tableq WHERE name='" . $row1['name'] . "' AND fieldid='" . $row1['fieldid'] . "'";
                $query2 = $conn->query($code2) or trigger_error($conn->error.[$code2]);

                if($query2->num_rows > 0){
                    echo ("
                            <td rowspan=\"".$counter."\">".$row1['name']."</td>
                    ");
                }

                echo ("
                        <td>".$row1['fieldid']."</td>
                        <td>".$row1['info']."
                ");

                if($query2->num_rows > 0){
                    while($row2 = $query2->fetch_assoc()){
                        $counter += 1;
                        echo ("
                                <br>".$row2['info2']."
                        ");
                    }
                }else{
                    die("No results found");
                }
                echo ("
                        </td>
                    </tr>
                ");
            }
        }
    ?>

我已阅读相关问题,但没有一个适合我的问题。

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    我建议以不同的方式解决它。

    你要做的第一件事就是构建一个多维数组,比如

    $entries[1][testName1][fieldId] = [entry1, entry2, entry3];
    $entries[2][testName2][fieldId] = [entry1, entry2, entry3];
    $entries[3][testName2][fieldId] = []; // "Not found"
    

    一旦你已经构建了数组,在 HTML 表格中输出就容易多了。调试起来要容易得多。

    【讨论】:

    • 您能否进一步解释一下我应该如何/在哪里执行此操作?我不太擅长数组。
    猜你喜欢
    • 2020-11-10
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 2020-01-01
    • 2014-06-04
    • 1970-01-01
    相关资源
    最近更新 更多