Получить имена столбцов из объекта запроса MySQL (PHP) - PullRequest
3 голосов
/ 30 января 2012

В настоящее время я храню результаты запросов MySQL в массиве объектов, где каждый объект представляет строку, соответствующую запросу. Позже я пробежался по двум циклам foreach для извлечения результатов - в приведенном ниже примере они выводятся в виде динамически генерируемой таблицы HTML.

Мой вопрос: возможно ли получить имена столбцов из объекта результата запроса? Моя цель - иметь возможность динамически генерировать заголовки таблиц, которых в моей HTML-таблице в настоящее время нет.

Спасибо!

$data = array();

$result = db_query("SELECT column1, column2 FROM table");

while ($obj= db_fetch_object($result)) {
    array_push($data, $obj);
}

$ret = "<table>";
foreach ($data as $row) {
   $ret .= "<tr>";
   foreach ($row as $field) {
      $ret .= "<td>$field</td>";
   }
   $ret .= "</tr>";
}
$ret .= "</table>";

return $ret; 

Ответы [ 3 ]

3 голосов
/ 30 января 2012

Есть функция для получения имени столбца. Пожалуйста, проверьте по этой ссылке:

http://php.net/manual/en/function.mysql-fetch-field.php

2 голосов
/ 30 января 2012

Вы можете использовать эту функцию http://php.net/manual/en/function.mysql-fetch-field.php

0 голосов
/ 24 апреля 2016

Вопрос старый, но вот как это можно сделать с помощью mysqli _ *

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

        //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>";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...