У меня возникла серьезная проблема с пониманием таблиц mysql -> массивов -> циклов -> запрос печати с помощью php.
Я бы хотел, чтобы таблица ECHO mysql отображалась в html-таблице с заголовками (html, а не mysql). COLUMN 'header' должен быть представлен как:
<tr><th>header</th><th>header</th><th>header</th><th>header</th></tr>
и поле COLUMN 'как:
<tr><td>field</td><td>field</td><td>field</td><td>field</td></tr> <tr><td>field</td><td>field</td><td>field</td><td>field</td></tr> <tr><td>field</td><td>field</td><td>field</td><td>field</td></tr> <tr><td>field</td><td>field</td><td>field</td><td>field</td></tr>
Возникает вопрос: как перебирать такой запрос (или как сделать такой запрос) в заголовки ECHO как столбец таблицы mysql и поля цикла?
Может быть, это поможет:
`id` int(8) NOT NULL AUTO_INCREMENT, `section_id` int(8) NOT NULL DEFAULT '0', `header` varchar(64) NOT NULL, `position` int(2) NOT NULL, `field` varchar(16) NOT NULL, `sorting` int(1) NOT NULL, `visible` int(1) NOT NULL, `width` int(3) NOT NULL, PRIMARY KEY (`id`)
Я сейчас:
<table> <?php $gsh = mysqli_query( $connector, "SELECT header, width FROM crm_sections_fields WHERE section_id='$sectionID' ORDER BY position ASC"); if(!$gsh) { MessageView('111'); } else { ?> <tr> <?php while($h = mysqli_fetch_array($gsh)) { echo "<th width=".$h['width'].">".$h['header']."</th>"; } ?> </tr> <?php } ///////// NOW IT SHOULD LOOP THROUGH ROWS </table>
Попробуй так.
<table> <tr><td>Id</td><td>Data</td></tr> <? $Sql = mysql_query("SELECT * FROM `YOURTABLE`"); while($dataSQL = mysql_fetch_array($Sql)){ ?> <tr><td><?=$dataSQL[id];?></td><td><?=$dataSQL[field];?></td></tr> <? } ?> </table>
Насколько я понял, вам интересно, как динамически отображать заголовки? Если вы не хотите явно указывать имена столбцов в вашей таблице HTML, вы можете посмотреть в моем ответе здесь: Редактирование табличных данных в PHP после добавления нового столбца в таблицу MYSQL
Пытаться:
<html> <body> <table> <?php $que = $dbh->query('SELECT * FROM TABLE'); $header=false; while ($row = $que->fetch()) { if($header===false){ echo '<tr><td>'. implode('</td><td>',array_keys($row)) . '</td></tr>'; $header=true; } echo '<tr><td>'. implode('</td><td>',$row) . '</td></tr>'; } ?> </table> </body> </html>
Это предполагает, что вы используете интерфейс PDO для доступа к своей базе данных, с которой вы должны быть, поскольку mysql_query
и его ilk устарели.
<table> <?php $gsh = mysqli_query( $connector, "SELECT header, width FROM crm_sections_fields WHERE section_id='$sectionID' ORDER BY position ASC"); if(!$gsh) { MessageView('111'); } else { ?> <tr> <?php while($h = mysqli_fetch_array($gsh)) { echo "<th width=".$h['width'].">".$h['header']."</th>"; } ?> </tr> after this <?php //here place you query and loop though as above and print the data in tr td instead of th above use td ?> </table>