У меня есть таблица с первым столбцом под названием «Фрукты» и последним столбцом с именем «Всего» * 1001 *
И любые столбцы между ними динамически создаются числом студентов.
Ниже то, что я хочу сделать динамически, из того, что показывает база данных.
<table border="1">
<tr>
<th>Fruit</th>
<th>Sally</th>
<th>John</th>
<th>Total</th>
</tr>
<tr>
<td>apples</td>
<td>5</td>
<td>3</td>
<td>8</td>
</tr>
<tr>
<td>bananas</td>
<td>3</td>
<td>5</td>
<td>8</td>
</tr>
<tr>
<td>Oranges</td>
<td>3</td>
<td>3</td>
<td>6</td>
</tr>
<tr>
<td></td>
<td>11</td>
<td>11</td>
<td>22</td>
</tr>
</table>
Вот трудности, с которыми я сталкиваюсь. Имена фруктов, студенты и употребляемые фрукты извлекаются из базы данных.
И я не знаю, сколько будет фруктовых рядов или студенческих столбцов.
Насколько я понял:
<table>
<tr>
<th>Fruit</th>
<?php $sqlS = db("SELECT s.*, sf.consumed FROM `tbl_students` s, `tbl_students_fruit` sf WHERE s.studentid = f.studentid ORDER BY s.studentname ASC");
while($student = mysql_fetch_array($sqlS)){ ?>
<th><?php echo $student['studentname'];?></th>
<?php } ?>
<th>Total</th>
</tr>
<?php $sqlF = db("SELECT * FROM `tbl_fruit` ORDER BY fruitname ASC");
while($fruit = mysql_fetch_array($sqlF)){ ?>
<tr>
<td><?php echo $fruit['fruitname'];?></th>
<td></td>
<td></td>
</tr>
<? } ?>
</table>
Как видите, я создаю строки Fruit и столбцы Student. Но это неполно Я создал только заголовки столбцов, а не столбцы под заголовками. С этого момента я застрял в кишках стола.
Я уверен, что массивы - это путь к этому чудовищу. Но единственный способ, которым мой слабый мозг может выполнить эту работу, - это иметь больше запросов, что, я уверен, является очень неправильным способом сделать это.
Если было 3 ученика или 15 учеников, я могу сделать так, чтобы они отображались в столбцах таблицы, но не в строках в столбцах.
Как обходить динамические столбцы таким образом?
И если моя демонстрация выше сбивает с толку, я не виню вас!