Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 表在筛选结果时打印多个列标题_Php_Html_Mysql_Html Table - Fatal编程技术网

Php 表在筛选结果时打印多个列标题

Php 表在筛选结果时打印多个列标题,php,html,mysql,html-table,Php,Html,Mysql,Html Table,过滤结果后,如何阻止表格打印多个列标题??示例如下所示 我的代码 function fillQueryData() { $dbName = $_REQUEST ['db']; $link = mysqli_connect ( '192.168.2.113', 'root', '', $dbName ); if (! $link) { die ( "Co

过滤结果后,如何阻止表格打印多个列标题??示例如下所示

我的代码

function fillQueryData() {
                $dbName = $_REQUEST ['db'];
                $link = mysqli_connect ( '192.168.2.113', 'root', '', $dbName );
                if (! $link) {
                        die ( "Connection failed" . mysqli_errno ( $link ) );
                }
                if (isset ( $_POST ['name'] )) {
                        $name = trim ( $_POST ['name'] );
                        $tblName = $_REQUEST ['tbl'];
                        $colqry = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$dbName' AND TABLE_NAME = '$tblName'";
                        $col_names = mysqli_query ( $link, $colqry );
                        while ( $col = mysqli_fetch_array ( $col_names, MYSQLI_ASSOC ) ) {
                                $colName = $col ['COLUMN_NAME'];
                                $tblQry = "SELECT * FROM $tblName WHERE $colName='$name' LIMIT 15";
                                $query2 = mysqli_query ( $link, $tblQry );

                        echo "<table><tr>";
                        $i = 0;
                        while ( $i < mysqli_num_fields ( $query2 ) ) {
                                $meta = mysqli_fetch_field_direct ( $query2, $i );
                                echo "<th>" . $meta->name . "</th>";
                                $i = $i + 1;
                        }
                        echo "</tr>";

                        $i = 0;
                        while ( $row = mysqli_fetch_row ( $query2 ) ) {
                                echo "<tr>";
                                $count = count ( $row );
                                $y = 0;
                                while ( $y < $count ) {
                                        $c_row = current ( $row );
                                        echo "<td>" . $c_row . "</td>";
                                        next ( $row );
                                        $y = $y + 1;
                                }
                                echo "</tr>";
                                $i = $i + 1;
                        }
                        echo "</table>";
        }       }
        }
函数fillQueryData(){
$dbName=$_请求['db'];
$link=mysqli_connect('192.168.2.113','root','',''$dbName);
如果(!$link){
die(“连接失败”。mysqli_errno($link));
}
如果(isset($_POST['name'])){
$name=trim($_POST['name']);
$tblName=$_请求['tbl'];
$colqry=“从信息_SCHEMA.COLUMNS中选择列_NAME,其中表_SCHEMA='$dbName'和表_NAME='$tblName';
$col\u name=mysqli\u查询($link,$colqry);
而($col=mysqli\u fetch\u数组($col\u名称,mysqli\u ASSOC)){
$colName=$col['COLUMN_NAME'];
$tblQry=“从$tblName中选择*,其中$colName='$name'限制15”;
$query2=mysqli\u查询($link,$tblQry);
回声“;
$i=0;
而($iname.”;
$i=$i+1;
}
回声“;
$i=0;
while($row=mysqli\u fetch\u row($query2)){
回声“;
$count=计数($row);
$y=0;
而($y<$count){
$c_row=当前($row);
回显“$c_行”;
下一个($行);
$y=$y+1;
}
回声“;
$i=$i+1;
}
回声“;
}       }
}

我不想将表数据while循环放在我的列名while循环中,但是如果我不这样做,我就不会在行中得到任何结果。如何解决此问题,以便只显示过滤后的结果???

列标题循环应位于数据获取循环之外

代码应该是这样的

function filterTblData() {
    $dbName = $_REQUEST ['db'];
    $link = mysqli_connect ( '192.168.2.113', 'root', '', $dbName );
    if (! $link) {
        die ( "Connection failed" . mysqli_errno ( $link ) );
    }
    if (isset ( $_POST ['name'] )) {
        $name = trim ( $_POST ['name'] );
        $tblName = $_REQUEST ['tbl'];
        // Dynamically select the column names of the chosen table.
        $colqry = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$dbName' AND TABLE_NAME = '$tblName'";
        $col_names = mysqli_query ( $link, $colqry );
        $col = mysqli_fetch_array ( $col_names, MYSQLI_ASSOC );
        $colName = $col ['COLUMN_NAME'];
        // Selecting and filtering results based on matching search terms.
        $tblQry = "SELECT * FROM $tblName WHERE $colName='$name' LIMIT 15";
        $query2 = mysqli_query ( $link, $tblQry );

        echo "<table><tr>";
        // Loop for fetching table column headers and riprinting them.
        $i = 0;
        while ( $i < mysqli_num_fields ( $query2 ) ) {
            $meta = mysqli_fetch_field_direct ( $query2, $i );
            echo "<th>" . $meta->name . "</th>";
            $i = $i + 1;
        }
        echo "</tr>";
        // Fetch row data and populate
        while ( $col = mysqli_fetch_array ( $col_names, MYSQLI_ASSOC ) ) {
            $colName = $col ['COLUMN_NAME'];
            // Selecting and filtering results based on matching search terms.
            $tblQry = "SELECT * FROM $tblName WHERE $colName='$name' LIMIT 15";
            $query2 = mysqli_query ( $link, $tblQry );
            $i = 0;
            while ( $row = mysqli_fetch_row ( $query2 ) ) {
                echo "<tr>";
                $count = count ( $row );
                $y = 0;
                while ( $y < $count ) {
                    $c_row = current ( $row );
                    echo "<td>" . $c_row . "</td>";
                    next ( $row );
                    $y = $y + 1;
                }
                echo "</tr>";
                $i = $i + 1;
            }
        }
        echo "</table>";
    }
}
filterTblData();
函数filterTblData(){
$dbName=$_请求['db'];
$link=mysqli_connect('192.168.2.113','root','',''$dbName);
如果(!$link){
die(“连接失败”。mysqli_errno($link));
}
如果(isset($_POST['name'])){
$name=trim($_POST['name']);
$tblName=$_请求['tbl'];
//动态选择所选表的列名。
$colqry=“从信息_SCHEMA.COLUMNS中选择列_NAME,其中表_SCHEMA='$dbName'和表_NAME='$tblName';
$col\u name=mysqli\u查询($link,$colqry);
$col=mysqli\u fetch\u数组($col\u名称,mysqli\u ASSOC);
$colName=$col['COLUMN_NAME'];
//根据匹配的搜索词选择和筛选结果。
$tblQry=“从$tblName中选择*,其中$colName='$name'限制15”;
$query2=mysqli\u查询($link,$tblQry);
回声“;
//循环获取表列标题并重新打印它们。
$i=0;
而($iname.”;
$i=$i+1;
}
回声“;
//获取行数据并填充
而($col=mysqli\u fetch\u数组($col\u名称,mysqli\u ASSOC)){
$colName=$col['COLUMN_NAME'];
//根据匹配的搜索词选择和筛选结果。
$tblQry=“从$tblName中选择*,其中$colName='$name'限制15”;
$query2=mysqli\u查询($link,$tblQry);
$i=0;
while($row=mysqli\u fetch\u row($query2)){
回声“;
$count=计数($row);
$y=0;
而($y<$count){
$c_row=当前($row);
回显“$c_行”;
下一个($行);
$y=$y+1;
}
回声“;
$i=$i+1;
}
}
回声“;
}
}
filterTblData();