Php mysqli_fetch_字段不';t返回第一个列名

Php mysqli_fetch_字段不';t返回第一个列名,php,Php,我正在使用mysqli\u fetch\u字段在while循环中自动填充标题名。我得到了头球,但总是错过第一个。我正在使用mysqli\u fetch\u row并获取表数据的正确列数 function tableQuery($sql){ $query = mysqli_query($conn, $sql); $columns = 0; $tableInfo = mysqli_fetch_field($query); echo "<center>&l

我正在使用
mysqli\u fetch\u字段
while
循环中自动填充标题名。我得到了头球,但总是错过第一个。我正在使用
mysqli\u fetch\u row
并获取表数据的正确列数

function tableQuery($sql){
    $query = mysqli_query($conn, $sql);
    $columns = 0;

    $tableInfo = mysqli_fetch_field($query);
    echo "<center><h1>Results for " . $tableInfo->table . "</h1></center>";

    echo "<table>";
    echo "<tr>";
        while($headers = mysqli_fetch_field($query)) {
            echo "<th>" . $headers->name . "</th>";
            $columns++;
        }
    echo "</tr>";

        while($row = mysqli_fetch_row($query)) {
            echo "<tr>";
                for ($n = 0; $n <= $columns; $n++) {
                    echo "<td>" . $row[$n] . "</td>";
                }
            echo "</tr>";
        }
    echo "</table>";
}
例如,它缺少
id
表头。
当我
var\u dump($headers->name)
我看不到
id
谢谢你@cdhowie,问题是我在
$tableInfo
中获取列名,所以要么删除表信息,要么这样做:

function tableQuery($sql){
    $query = mysqli_query($conn, $sql);
    $columns = 0;
    $headerSet = false;

    echo "<table>";
    echo "<tr>";
        while($headers = mysqli_fetch_field($query)) {
            if(!$headerSet){
                echo "<h1> Results for " . $headers->name . "</h1>";
                headerSet = true;
            }
            echo "<th>" . $headers->name . "</th>";
            $columns++;
        }
    echo "</tr>";

        while($row = mysqli_fetch_row($query)) {
            echo "<tr>";
                for ($n = 0; $n <= $columns; $n++) {
                    echo "<td>" . $row[$n] . "</td>";
                }
            echo "</tr>";
        }
    echo "</table>";
}
函数表查询($sql){
$query=mysqli\u query($conn,$sql);
$columns=0;
$headerSet=false;
回声“;
回声“;
while($headers=mysqli\u fetch\u字段($query)){
如果(!$headerSet){
回显“..$headers->name.”的结果;
headerSet=true;
}
回显“$headers->name.”;
$columns++;
}
回声“;
while($row=mysqli\u fetch\u row($query)){
回声“;
对于($n=0;$n替换:

while($headers = mysqli_fetch_field($query)) {
    echo "<th>" . $headers->name . "</th>";
    $columns++;
}
while($headers=mysqli\u fetch\u字段($query)){
回显“$headers->name.”;
$columns++;
}
与:

do{
回显“$tableInfo->name.”;
$columns++;
}while($tableInfo=mysqli\u fetch\u字段($query))

您需要的是将指针设置回0(在完成查询后)

mysqli_字段_seek($query,0)

。。。
mysqli_字段_seek($query,0);
回声“;
回声“;
while($headers=mysqli\u fetch\u字段($query)){
回显“$headers->name.”;
$columns++;
}
回声“;
...

$tableInfo=mysqli\u fetch\u字段($query);回显“$tableInfo->table的结果”;
@cdhowie,嗯,你说得对,我可以在
$tableInfo
中看到
id
while($headers = mysqli_fetch_field($query)) {
    echo "<th>" . $headers->name . "</th>";
    $columns++;
}
do {
    echo "<th>" . $tableInfo->name . "</th>";
    $columns++;
} while($tableInfo = mysqli_fetch_field($query))
...  
mysqli_field_seek($query,0);

echo "<table>";
echo "<tr>";
    while($headers = mysqli_fetch_field($query)) {
        echo "<th>" . $headers->name . "</th>";
        $columns++;
    }
echo "</tr>";
...