在表格中对数据表进行分组时遇到问题。 我已经做了,但我认为结果不符合预期。
这是示例脚本:
<?php
$conn=mysql_connect('localhost','root','');
mysql_select_db('things',$conn) or die ("Database Not Found");
$result = mysql_query("SELECT id, name, size, color FROM things ORDER BY color");
$state = -1;
$no = 1;
echo '<table border=1><tr><td>INDEX OF COLOR</td></tr><tr><td>';
while($row = mysql_fetch_array( $result )) {
if($state!= $row['color']) {
$no = 1;
echo '<tr bgcolor=yellow><td>'.$row['color']."</td></tr>";
echo '<tr><td><table border=1><tr><th>no</th><th>NAME OF HERO</th></tr>';
$state = $row['color'];
}
echo '<tr><td>'.$no.'</td><td>'.$row['name'].'</td></tr>';
$no++;
}
echo '</td></tr></table>';
?>
该代码在表中生成错误的表。期望的结果是颜色组&gt;&gt;详情(表)。
我需要这样的结果:)
+-------------------+
| INDEX OF COLOR |
+-------------------+
|RED |
+-------------------+
| +----------+ |
| |HERO | |
| +----------+ |
| |ROBIN | |
| +----------+ |
| |INCREDIBLE| |
| +----------+ |
+-------------------+
|BLUE |
+-------------------+
| +----------+ |
| |HERO | |
| +----------+ |
| |SPIDEY | |
| +----------+ |
| |SUPER MAN | |
| +----------+ |
| |ICE MAN | |
| +----------+ |
+-------------------+
任何人都可以帮助我,为什么这个代码错了?
谢谢。 :)
答案 0 :(得分:0)
我认为你的桌子比它需要的更复杂。我没有测试过这个,但试试看。
$first_color = true;
echo '<table border=1><tr><td>INDEX OF COLOR</td></tr>';
while($row = mysql_fetch_array( $result )) {
if($state!= $row['color']) {
if(!$first_color) {
echo '</table></td></tr>';
$first_color = true;
}
$no = 1;
echo '<tr bgcolor=yellow><td>'.$row['color']."</td></tr>";
echo '<tr><td><table border=1><tr><td>no</td><td>NAME OF HERO</td></tr>';
$state = $row['color'];
}
echo '<tr><td>'.$no.'</td><td>'.$row['name'].'</td></tr>';
$no++;
}
echo '</table></td></tr></table>';