Мой код показывает то же самое, что и на картинке, вместо отображения 20 16,5 16 12 Отображает один ряд с 20 четыре раза, другой 16,5
Вот как я хочу посмотреть мой класс 20 16.5 16 12
Заранее спасибо.
<?php foreach($rowstudent as $rowst): ?>
<tr>
<th><?php echo '' . htmlentities($rowst['fname'], ENT_QUOTES, 'UTF-8') . '';?></th>
<th><?php echo '' . htmlentities($rowst['lname'], ENT_QUOTES, 'UTF-8') . '';?></th>
<th><?php echo '' . htmlentities($rowst['studentcode'], ENT_QUOTES, 'UTF-8') . '';?></th>
<?php foreach($rowstudentpoints as $rowsm): ?>
<th> <?php echo ' ' . htmlentities($rowsm['sum'], ENT_QUOTES, 'UTF-8') . '<br>';?></th>
<?php endforeach; ?>
<?php endforeach; ?>
</tr>
Попробуй это:
<?php foreach($rowstudent as $k=>$rowst): ?>
<tr>
<th><?php echo '' . htmlentities($rowst['fname'], ENT_QUOTES, 'UTF-8') . '';?></th>
<th><?php echo '' . htmlentities($rowst['lname'], ENT_QUOTES, 'UTF-8') . '';?></th>
<th><?php echo '' . htmlentities($rowst['studentcode'], ENT_QUOTES, 'UTF-8') . '';?></th>
<th> <?php echo ' ' . htmlentities($rowstudentpoints[$k]['sum'], ENT_QUOTES, 'UTF-8') . '<br>';?></th>
</tr>
<?php endforeach; ?>
Ваша проблема заключалась в внутреннем foreach
, который выполнялся в каждом ряду. Итак, что мы делаем, возьмите индекс первого массива $k
и используйте его во втором массиве, содержащем сумму, таким образом мы можем использовать оба массива в одном foreach
.
<?php
$i=0;
foreach($rowstudent as $rowst): ?>
<tr>
<th><?php echo '' . htmlentities($rowst['fname'], ENT_QUOTES, 'UTF-8') . '';?></th>
<th><?php echo '' . htmlentities($rowst['lname'], ENT_QUOTES, 'UTF-8') . '';?></th>
<th><?php echo '' . htmlentities($rowst['studentcode'], ENT_QUOTES, 'UTF-8') . '';?></th>
<th><?php echo htmlentities($rowst['Grade'], ENT_QUOTES, 'UTF-8') . htmlentities($rowst['delete'], ENT_QUOTES, 'UTF-8') . htmlentities($rowst['edit'], ENT_QUOTES, 'UTF-8');?></th>
<?php endforeach; ?>
</tr>