【问题标题】:use PHP to create an HTML table from a MSQL query, without duplicate rows?使用 PHP 从 SQL 查询创建 HTML 表,没有重复的行?
【发布时间】:2016-02-29 19:45:31
【问题描述】:

我正在为以这种格式显示的学生模块网页创建一个显示

2001/02

  • 计算机科学
  • 生物学
  • Lo​​rem Ipsum

2002/03

  • 主题
  • 主题
  • 主题

那种风格 我正在使用的数据库包含诸如

之类的信息
  • 年(2001/02)
  • 学分(10)
  • mods.mid(CS500)
  • mtitle(模块名称 - 软件工程、生物学、化学...等)

我拥有的 PHP 代码显示了每个模块的标题,所以实际上我是一个巨大的模块列表,而我想像上面描述的那样将其拆分,年份显示了那一年的每个模块。有人帮助我吗?代码如下:

<?php
echo "<table cellspacing='40'>";
$query2 ="SELECT  mods.mid, ayr, mtitle, credits FROM stud, smod, mods WHERE stud.sid = '".$_POST['stuNo']."' and stud.sid = smod.sid and smod.mid = mods.mid order by ayr ASC";

$result = mysql_query($query2) or die(mysql_error());

echo "Enrolment and progress";
echo "<table width='150' border='1'>";

echo "<th> Module Selection</th>"; 
echo"<td>".$row["ayr"]."</td>";


while ($row = mysql_fetch_array($result))
{
  $temp_year=$row["ayr"];
echo "<tr>";


 if ($temp_year!=$row["ayr"]){
     echo "<td>" . $row["ayr"] . "</td>";
 }

echo "<td>" . $row["mid"] . "</td>";
echo "<td>" . $row["mtitle"] . "</td>";
echo "<td>" . $row["credits"] . "</td>";

echo "</tr>";
}
echo "</table>";

?>

我不知道如何按年份分开,任何帮助都很棒。谢谢。

【问题讨论】:

  • 不能按年份排序吗?
  • @Dagon 它不是排序部分,它以描述的特定方式显示模块的年份
  • 循环-将年份保存在局部变量中,当年份变化时,您的循环统计新的一年\数据显示
  • @Dagon 现在试试看,谢谢。
  • $temp_year=$row["ayr"] ... (if $temp_year!=$row["ayr"]){//new year) ...

标签: php html mysql


【解决方案1】:

我可能会这样编码,可能不是唯一的方法,但应该根据我相信你想要实现的目标来工作。请确保也将“order by”添加到您的 SQL 查询中。

echo "<table cellspacing='40'>";
$query2 = "SELECT mods.mid, ayr, mtitle, credits FROM stud, smod, mods WHERE stud.sid = '".$_POST['stuNo']."' and stud.sid = smod.sid and smod.mid = mods.mid ORDER BY ayr DESC";

$result = mysql_query($query2) or die(mysql_error());

echo "Enrollment and Progress";
echo "<table width='150' border='1'>";
echo "<tr><td colspan="3"><b>Module Selection</b></td></tr>";
$year = "";
while ($row = mysql_fetch_array($result)) {
    if ($year != $row["ayr"]) {
       echo "<tr><td colspan="3"><b>" . $row["ayr"] . "</b></td></tr>";
       $year = $row["ayr"];
    }
    echo "<tr>";
    echo "<td>" . $row["mid"] . "</td>";
    echo "<td>" . $row["mtitle"] . "</td>";
    echo "<td>" . $row["credits"] . "</td>";
    echo "<tr>";
}
echo "</table>";

【讨论】:

  • 太棒了!谢谢!
  • 或者有人可以为你写。
猜你喜欢
  • 2015-07-16
  • 2021-09-17
  • 2018-05-21
  • 2022-01-25
  • 2020-10-13
  • 1970-01-01
  • 1970-01-01
  • 2012-01-01
相关资源
最近更新 更多