Создание таблиц PHP с массивами - PullRequest
0 голосов
/ 21 февраля 2011

У меня есть таблица с первым столбцом под названием «Фрукты» и последним столбцом с именем «Всего» * ​​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 учеников, я могу сделать так, чтобы они отображались в столбцах таблицы, но не в строках в столбцах.

Как обходить динамические столбцы таким образом?

И если моя демонстрация выше сбивает с толку, я не виню вас!

1 Ответ

0 голосов
/ 21 февраля 2011

хорошо, я предполагаю, что ваша структура БД выглядит следующим образом:

[tbl_students]
studentid, studentname

[tbl_fruit]
fruitid, fruitname

[tbl_students_fruit]
id, fruitid, studentid, consumed

http://pastebin.com/CxPUeXR0

Я не проверял, так что удачи

...