Это нормально ?
$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
Попробуйте функцию 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>";