Как создать собственную динамическую c таблицу из mysql данных в php? Я пытался, но результат не так, как я ожидал. Я жестко запрограммировал часть кода, например, для $ row [name], в то время как l oop просто для отображения ожидаемого результата, но в будущем имя должно совпадать с извлекаемыми записями. Извините за мой английский sh.
Мой код:
<?php
include('dbconnection.php');
$td= '';$j=0;$i=0;
?>
<table border=1>
<tr>
<th rowspan=2>Company</th>
<th colspan=3>Name</th>
<th rowspan=2>Month</th>
</tr>
<tr>
<?php
$sql = mysqli_query($con,"select * from score");
$sql1 = mysqli_query($con,"SELECT distinct name FROM score");
$mnt = mysqli_query($con,"SELECT distinct month_year FROM score");
$countmnt = mysqli_num_rows($mnt);
while($rowtd=mysqli_fetch_array($sql1)){ echo '<th>'.$rowtd['name'].'</th>'; }
echo '</tr>';
while($row=mysqli_fetch_array($sql)){
while($rw=mysqli_fetch_array($mnt)){
echo '<tr>';
if(0==$i++) {echo '<td rowspan='.$countmnt.'>'.$row['company'].'</td>';}
if($row['name']=='Mike'){
echo '<td>'.$row['score'].'</td>'; }
else {echo '<td></td>';}
if($row['name']=='Josh'){
echo '<td>'.$row['score'].'</td>'; }
else {echo '<td></td>';}
if($row['name']=='Liew'){
echo '<td>'.$row['score'].'</td>'; }
else {echo '<td></td>';}
echo '<td>'.$rw['month_year'].'</td>';
echo '</tr>';
}
}
echo '</table>';
?>
Создать таблицу:
CREATE TABLE `score` (
`playerid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`company` varchar(20) DEFAULT NULL,
`score` int(11) DEFAULT '0',
`name` varchar(20) DEFAULT NULL,
`month_year` varchar(20) DEFAULT NULL,
PRIMARY KEY (`playerid`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8
insert into score values
(1, 'ABC', 10, 'Mike', 'April'),
(2, 'ABC', 40, 'Mike', 'May'),
(3, 'ABC', 20, 'Josh', 'April'),
(4, 'ABC', 9, 'Liew', 'June'),
(5, 'ABC', 20, 'Josh', 'June'),
(6, 'DEF', 13, 'Josh', 'April'),
(7, 'DEF', 12, 'Liew', 'April'),
(8, 'DEF', 5, 'Mike', 'May'),
(9, 'DEF', 7, 'Liew', 'June');
Ожидаемый результат:
![expected output](https://i.stack.imgur.com/MJfkf.png)