Этот вопрос старый, но я нашел способ поиска заданного запроса его имена полей динамическим способом (не обязательно только поля таблицы). И поскольку люди продолжают указывать это как ответ на эту заданную задачу в других связанных вопросах, я разделяю то, как я нашел, что это можно сделать, используя советы Гевина Симпсона:
//Function to generate a HTML table from a SQL query
function myTable($obConn,$sql)
{
$rsResult = mysqli_query($obConn, $sql) or die(mysqli_error($obConn));
if(mysqli_num_rows($rsResult)>0)
{
//We start with header. >>>Here we retrieve the field names<<<
echo "<table width=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"0\"><tr align=\"center\" bgcolor=\"#CCCCCC\">";
$i = 0;
while ($i < mysqli_num_fields($rsResult)){
$field = mysqli_fetch_field_direct($rsResult, $i);
$fieldName=$field->name;
echo "<td><strong>$fieldName</strong></td>";
$i = $i + 1;
}
echo "</tr>";
//>>>Field names retrieved<<<
//We dump info
$bolWhite=true;
while ($row = mysqli_fetch_assoc($rsResult)) {
echo $bolWhite ? "<tr bgcolor=\"#CCCCCC\">" : "<tr bgcolor=\"#FFF\">";
$bolWhite=!$bolWhite;
foreach($row as $data) {
echo "<td>$data</td>";
}
echo "</tr>";
}
echo "</table>";
}
}
Это может быть легко moded, чтобы вставить имена полей в массив.
С помощью простого: $sql="SELECT * FROM myTable LIMIT 1"
может предоставить вам поля любой таблицы, без необходимости использовать SHOW COLUMNS
или любой дополнительный php-модуль, если необходимо (удаление часть дампа данных).
Надеюсь, это поможет кому-то еще.