从MySQL数据库动态创建表行和列而不输出行

时间:2019-02-07 17:56:17

标签: php 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;

    }

1 个答案:

答案 0 :(得分:0)

您是否检查过其中是否确实有数据?使用print_r($result),因为它可能是您的查询。如果显示为空数组,则应使用print($sql)进行查询,然后将其粘贴到phpmyadmin上以检查查询是否正确。