2011-02-21 3 views
0

J'ai une table avec une première colonne intitulée: « Fruit », et une dernière colonne intitulée: « Total »création de la table PHP avec des tableaux

Et les colonnes entre les deux sont créés dynamiquement par le nombre d'étudiants. Ci-dessous est ce que je cherche à faire dynamiquement, à partir de ce que la base de données montre jusqu'à présent.

<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> 

Voici les difficultés que je rencontre. Les noms de fruits, les élèves et les fruits consommés sont extraits de la base de données. Et je ne sais pas combien de rangées de fruits et de colonnes d'étudiants il y aura.

Ceci est aussi loin que je suis:

<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> 

Comme vous pouvez le voir, je crée les lignes de fruits, et des colonnes de l'élève. Mais c'est incomplet. J'ai seulement créé les en-têtes de colonne, et non les colonnes sous les en-têtes. De ce point, je suis coincé sur le ventre de la table. Je suis sûr que les tableaux sont la voie à suivre avec cette monstruosité. Mais la seule façon dont mon cerveau faible peut faire ce travail est d'avoir plus de questions, ce qui, je suis sûr, est une très mauvaise façon de faire cela.

S'il y avait 3 étudiants ou 15 étudiants, je peux les faire apparaître dans le tableau th colonnes, mais pas dans les lignes dans leurs colonnes.

Comment peut-on traverser les colonnes dynamiques de cette façon?

Et si ma démo ci-dessus est confuse, je ne vous blâme pas!

+0

peut vous donner une meilleure description de votre tables de base de données s'il vous plaît – ehudokai

Répondre

0

bien, je suppose que votre structure db est la suivante:

[tbl_students] 
studentid, studentname 

[tbl_fruit] 
fruitid, fruitname 

[tbl_students_fruit] 
id, fruitid, studentid, consumed 

http://pastebin.com/CxPUeXR0

Je ne l'ai pas testé, donc bonne chance