首页 > 解决方案 > 从 MySQL 数据库中动态创建表行和列而不是输出行

问题描述

我编写了一个脚本,该脚本会根据用户在 MySQL 数据库中保存的数据创建一个矩阵形式的表。在本例中,样本信息将显示在行中,每个样本的各种分析将在列中进行。

下面的示例成功创建了列,但是完全省略了行。任何人都可以请提供一个解释,也许是为什么没有创建行的解决方案?没有给出错误,行根本没有显示。

 if (isset($_GET['display_full_results'])) {

        require 'dbh.php';

        $order_id = $_GET['display_full_results'];
        $sql = "SELECT * FROM samples_database WHERE order_id=$order_id AND micro_analysis!='';";
        $result = mysqli_query($conn, $sql);



        $micro_analysis = '';
        while($input = mysqli_fetch_array($result)) {
            $micro_analysis .= $input['micro_analysis'] . ',';
        }
        $micro_analysis_arr = array_filter(array_unique(explode(',', $micro_analysis)));



        $output = '';

        if (mysqli_num_rows($result) > 0) {

            $output .= '        
            <thead>
            <tr>';

            foreach ($micro_analysis_arr as $row1) {
                $query = "SELECT * FROM microbiology_analysis_database WHERE id=$row1"; 
                $result3 = mysqli_query($conn, $query);
                $input2 = mysqli_fetch_array($result3);

                $output .= '
                <th colspan="1"><th>
                <th>'.$input2['m_analysis'].'</th>';
            }

            $output .= '</tr>                           
            </thead>
            <tbody>';

            while ($row = mysqli_fetch_assoc($result)) {

                $output .= '
                <tr> 
                <td>'.$row['env_sam_id'].'</td> 
                <td><input>Empty</td>       
                <td><input>Empty</td>           
                </tr>';
            }

            $output .= '</tbody>';
        }

        echo $output;

    }

标签: phpmysql

解决方案


你检查过它是否真的有数据吗?使用print_r($result),因为它可能是您的查询。如果它显示一个空数组,那么您应该使用print($sql)获取查询然后将其粘贴到 phpmyadmin 以检查您的查询是否正确。


推荐阅读