Php 创建一个像这样的HTML表
不久前我发布了一个问题,我得到了我的答案,但现在我有点想跟进这个问题,所以我有一个类似于图片中的表格,但我想将总计添加到每行或实际上是一个组中,我如何才能做到这一点。 这是创建此表的php代码,如何编辑它以添加总数Php 创建一个像这样的HTML表,php,sql,html,Php,Sql,Html,不久前我发布了一个问题,我得到了我的答案,但现在我有点想跟进这个问题,所以我有一个类似于图片中的表格,但我想将总计添加到每行或实际上是一个组中,我如何才能做到这一点。 这是创建此表的php代码,如何编辑它以添加总数 $sql = mysql_query( "SELECT s.login AS 'from', r.login AS 'to',COUNT(*) as'message_count' FROM messages AS m,groups AS s,groups AS r WHE
$sql = mysql_query(
"SELECT s.login AS 'from', r.login AS 'to',COUNT(*) as'message_count'
FROM messages AS m,groups AS s,groups AS r
WHERE m.Group_ID = s.id
AND m.To_Group_ID = r.id
AND m.Simulation_ID = ".$_SESSION['sim_id']."
AND s.kind_of_user NOT IN (3,1)
AND r.kind_of_user NOT IN (3,1)
AND m.Group_ID IN
(SELECT Group_ID FROM simulationgroups
WHERE Simulation_ID = ".$_SESSION['sim_id'].")
AND m.To_Group_ID IN
(SELECT Group_ID FROM simulationgroups
WHERE Simulation_ID = ".$_SESSION['sim_id'].")
GROUP BY m.Group_ID, m.To_Group_ID
ORDER BY s.id DESC"
) or die (mysql_error());
$data = array();
while($row = mysql_fetch_assoc($sql))
{
$data[$row['to']][$row['from']] += $row['message_count'];
}
// Print headers
$columns = array_keys($data);
echo "<table class='msg_dynamics' cellspacing=0
cellpadding=0 border=1px><tr><th><<</th>";
foreach($columns as $_column)
{
echo "<th width='10%'>{$_column}</th>";
}
echo "<th width='10%'>total</th>";
echo "</tr>";
// Print data
foreach($data as $_row_name => $_row_data)
{
// Add the dash (-) for empty cells
$_row_data[$_row_name] = '-';
echo "<tr><td width='10%'>{$_row_name}";
foreach($columns as $_col_name)
{
echo "<td>{$_row_data[$_col_name]}</td>";
}
echo "</td></tr>";
}
echo "<tr><td><b>total</b></td>";
)
您必须实现一个总计数器,如:
// Print data
foreach($data as $_row_name => $_row_data) {
// Add the dash (-) for empty cells
$_row_data[$_row_name] = '-';
$total_row = 0; //initialize
echo "<tr><td width='10%'>{$_row_name}</td>";
foreach($columns as $_col_name) {
echo "<td>{$_row_data[$_col_name]}</td>";
if ($_row_data[$_col_name] != '-') {
$total_row += $_row_data[$_col_name];
$total_col[$_col_name] += $_row_data[$_col_name];
}
}
echo "<td>{$total_row}</td>";
echo "</tr>";
}
echo "<tr><td><b>total</b></td>";
foreach ($total_col as $name => $val) {
echo "<td>$val</td>";
}
太多的意大利面代码让韦德无法理解through@Gordon:如果你有更好的方法,请告诉我。戈登:没什么帮助。你能解释一下你会怎么做,发布一个改进的版本,或者教OP什么吗?图像太小和模糊了。@Konerak&@Sarah See my-这里的问题是,你的代码一次做的太多了。你写得就像一篇文章:首先,我获取了我的数据库数据,然后我做了这个,然后我继续做那个。-那是不可维护的。对于每一个,然后将代码分解为不同的函数。尽量不要将HTML与PHP混合使用。将逻辑和内容分开。