首页 > 解决方案 > 如何打印表格的所有结果而不需要逐个变量打印?

问题描述

使用数据表的相应列名在两列表中打印所有这些结果的一些更简单的方法,而无需逐个打印变量。

我正在使用 mysqli 面向对象的 PHP,而不是使用 PDO,请不要这样:(fetchAll(PDO::FETCH_ASSOC);)。

    $stmt->execute();
    $stmt->store_result();
    $stmt->bind_result(
        $id_logtrama, $fechaHora, $idCliente,
        $idEquipo, $statusGlobal, $temp,
        $tempAmb, $hrelAmb, $presion,
        $termopar1, $termopar2, $volt_fase1,
        $amps_fase1, $frec_fase1, $fpot_fase1,
        $volt_fase2, $amps_fase2, $frec_fase2, $fpot_fase2, 
        $volt_fase3, $amps_fase3, $frec_fase3, $fpot_fase3, 
        $status_temp, $status_tempAmb, $status_hrelAmb, $status_presion,
        $status_termopar1, $status_termopar2, $status_volt_fase1,
        $status_amps_fase1, $status_frec_fase1, $status_fpot_fase1,
        $status_volt_fase2, $status_amps_fase2, $status_frec_fase2,
        $status_fpot_fase2, $status_volt_fase3, $status_amps_fase3,
        $status_frec_fase3, $status_fpot_fase3, $trama
    );
    while ($stmt->fetch()) {}

标签: phpmysqli

解决方案


我假设这是一行有很多列,但是即使您有多行,也可以使用获取结果集$res = $stmt->store_result();,然后您可以将该行作为 assoc 数组获取,并在内部 foreach 循环中使用其名称和值处理每一列,例如这个

    $stmt->execute();
    $res = $stmt->store_result();
?>
    <table class="table table-bordered">
<?php
    # Fetch each row from resultset
    while ( $row = $res->fetch_assoc() ){
        # for each row process each column
        foreach ($row as $name => $val ) {

            echo "
                <tr>
                    <td width='30%'><label>$name</label></td>
                    <td width='70%'>$val</td>
                </tr>";
        }
    }


推荐阅读