在表中显示PHP查询结果,而不考虑返回的列数?

在表中显示PHP查询结果,而不考虑返回的列数?,php,oracle-call-interface,Php,Oracle Call Interface,因此,我正在探索PHP的奇妙世界,我仍然在创建非常肮脏、构建糟糕的代码,但我正在努力做得更好!因此,我的问题如下: 有没有一种方法可以自动计算结果集中的列,并在不考虑使用查询的情况下生成一个漂亮的HTML表 以下是当前代码: 我使用PDO就可以做到这一点 $out = ''; $q = $conn->prepare($SQL); if ($q->execute()) { $rows = $q->fetchAll(); if (!empty($rows)) {

因此,我正在探索PHP的奇妙世界,我仍然在创建非常肮脏、构建糟糕的代码,但我正在努力做得更好!因此,我的问题如下:

有没有一种方法可以自动计算结果集中的列,并在不考虑使用查询的情况下生成一个漂亮的HTML表

以下是当前代码:


我使用PDO就可以做到这一点

$out = '';
$q = $conn->prepare($SQL);
if ($q->execute()) {
    $rows = $q->fetchAll();
    if (!empty($rows)) {
        //We have something
        $out .= "<table class='pure-table pure-table-striped' style='font-size:11px;'>";
        $first = true;
        //iterate on rows
        foreach($rows as $row) {
            //Clean out all the numeric keys - stops duplicate values
            foreach ($row as $key => $value) {
                if (is_int($key)) {
                    unset($row[$key]);
                }
            }

            //header
            if ($first) {
                //write header
                $out .= '<thead><tr>';
                foreach ($row as $key => $value) {
                    $out .= '<th>' . $key . '</th>';
                }
                $out .= '</tr></thead>';
                $first = false;
            }
            //write line
            $out .= '<tr>';
            foreach($row as $key => $value) {
                $out .= '<td>' . $value . '</td>';
            }
            $out .= '</tr>';
        }
        $out .= '</table>';
    }
}
echo ($out);
$out='';
$q=$conn->prepare($SQL);
如果($q->execute()){
$rows=$q->fetchAll();
如果(!空($rows)){
//我们有东西
$out.=”;
$first=true;
//在行上迭代
foreach($行作为$行){
//清除所有数字键-停止重复值
foreach($key=>$value的行){
if(is_int($key)){
未设置($row[$key]);
}
}
//标题
如果($第一){
//写头
$out.='';
foreach($key=>$value的行){
$out.=''.$key.'';
}
$out.='';
$first=false;
}
//写行
$out.='';
foreach($key=>$value的行){
$out.=''.$value.'';
}
$out.='';
}
$out.='';
}
}
echo($out);

我使用PDO就可以做到这一点

$out = '';
$q = $conn->prepare($SQL);
if ($q->execute()) {
    $rows = $q->fetchAll();
    if (!empty($rows)) {
        //We have something
        $out .= "<table class='pure-table pure-table-striped' style='font-size:11px;'>";
        $first = true;
        //iterate on rows
        foreach($rows as $row) {
            //Clean out all the numeric keys - stops duplicate values
            foreach ($row as $key => $value) {
                if (is_int($key)) {
                    unset($row[$key]);
                }
            }

            //header
            if ($first) {
                //write header
                $out .= '<thead><tr>';
                foreach ($row as $key => $value) {
                    $out .= '<th>' . $key . '</th>';
                }
                $out .= '</tr></thead>';
                $first = false;
            }
            //write line
            $out .= '<tr>';
            foreach($row as $key => $value) {
                $out .= '<td>' . $value . '</td>';
            }
            $out .= '</tr>';
        }
        $out .= '</table>';
    }
}
echo ($out);
$out='';
$q=$conn->prepare($SQL);
如果($q->execute()){
$rows=$q->fetchAll();
如果(!空($rows)){
//我们有东西
$out.=”;
$first=true;
//在行上迭代
foreach($行作为$行){
//清除所有数字键-停止重复值
foreach($key=>$value的行){
if(is_int($key)){
未设置($row[$key]);
}
}
//标题
如果($第一){
//写头
$out.='';
foreach($key=>$value的行){
$out.=''.$key.'';
}
$out.='';
$first=false;
}
//写行
$out.='';
foreach($key=>$value的行){
$out.=''.$value.'';
}
$out.='';
}
$out.='';
}
}
echo($out);

感谢您的快速响应!我将在EOD之前测试这个,并让您知道结果如何。您应该使用
$q->fetchAll(\PDO::FETCH\u ASSOC)使PDO只返回关联索引,这样就不会浪费执行时间删除数字索引。感谢您的快速响应!我将在EOD之前测试这个,并让您知道结果如何。您应该使用
$q->fetchAll(\PDO::FETCH\u ASSOC)
使PDO只返回关联索引,这样就不会浪费执行时间删除数值索引。