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>";
...