Intereting Posts
Очистка кеша Symfony для другого приложения Regex / Preg: нет совпадений, если найдено Как сжать или преобразовать в Mp3-файл низкого качества из PHP codeigniter – класс электронной почты – регистрация после отправки Как правильно создать домен с помощью Zend Framework? Являются ли mysql_real_escape_string () и mysql_escape_string () достаточными для безопасности приложения? Почему PDO лучше избегать запросов и запросов MySQL, чем mysql_real_escape_string? Невозможно заставить Laravel 4 работать на localhost Imagick: установка силы тяжести в объекте Imagick Как защитить файлы от несанкционированной загрузки Куда отправляется форма, если не указано никаких действий? Как хранить данные в юникоде на языке хинди Zend 1.11 и Doctrine 2 Auto генерируют все необходимое из уже существующей базы данных Проблема с загрузкой данных в базу данных Как я могу узнать, изменит ли текущая транзакция какие-либо объекты с Doctrine 2?

Как получить имена столбцов вместе с набором результатов в php / mysql?

Это нормально ?

$i = 0; while ($row = mysql_fetch_array($result)) { $resultset[] = $row; $columns[] = mysql_fetch_field($result, $i); } 

Затем при попытке печати

 <tr><th><?php echo $columns[0] ?></th><th><?php echo $columns[1] ?></th></tr> 

Я получил ошибку

 Catchable fatal error: Object of class stdClass could not be converted to string 

Solutions Collecting From Web of "Как получить имена столбцов вместе с набором результатов в php / mysql?"

Попробуйте функцию mysql_fetch_field .

Например:

 <?php $dbLink = mysql_connect('localhost', 'usr', 'pwd'); mysql_select_db('test', $dbLink); $sql = "SELECT * FROM cartable"; $result = mysql_query($sql) or die(mysql_error()); // Print the column names as the headers of a table echo "<table><tr>"; for($i = 0; $i < mysql_num_fields($result); $i++) { $field_info = mysql_fetch_field($result, $i); echo "<th>{$field_info->name}</th>"; } // Print the data while($row = mysql_fetch_row($result)) { echo "<tr>"; foreach($row as $_column) { echo "<td>{$_column}</td>"; } echo "</tr>"; } echo "</table>"; ?> 

Используйте mysql_fetch_assoc чтобы получить только ассоциативный массив и получить имена столбцов с первой итерацией:

 $columns = array(); $resultset = array(); while ($row = mysql_fetch_assoc($result)) { if (empty($columns)) { $columns = array_keys($row); } $resultset[] = $row; } 

Теперь вы можете распечатать головку своего стола с помощью первой итерации:

 echo '<table>'; $columns = array(); $resultset = array(); while ($row = mysql_fetch_assoc($result)) { if (empty($columns)) { $columns = array_keys($row); echo '<tr><th>'.implode('</th><th>', $columns).'</th></tr>'; } $resultset[] = $row; echo '<tr><td>'.implode('</td><td>', $rows).'</td></tr>'; } echo '</table>'; 

Вы хотите посмотреть

  mysql_fetch_assoc 

Которая дает каждую строку как ассоциативную клавишу => пара значений, где ключ является именем столбца.

Документация здесь

Хотя он устарел и больше не работает в PHP 7, вы можете избежать использования объекта, используя вместо этого функцию mysql_field_name которая возвращает строку.

Попробуй это

  $result=mysql_query('SELECT * FROM `table1` where id=5') or die ('query failed'); echo "<table>"; while ($row=mysql_fetch_assoc($result)) { $column = array_keys($row); for($i=0; $i<sizeof($column); $i++){ echo "<tr><th>".$column[$i]."</th><td>".$row[$column[$i]]."</td></tr>"; } } echo "</table>"; 

ИЛИ

  $result=mysql_query('SELECT * FROM `table1` where id=5') or die ('query failed'); echo "<table>"; $row=mysql_fetch_assoc($result); $column = array_keys($row); for($i=0; $i<sizeof($column); $i++){ echo "<tr><th>".$column[$i]."</th><td>".$row[$column[$i]]."</td></tr>"; } echo "</table>";