使用PHP从MSQL查询创建一个HTML表,而不重复行? [英] use PHP to create an HTML table from a MSQL query, without duplicate rows?

查看:110
本文介绍了使用PHP从MSQL查询创建一个HTML表,而不重复行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


$ b

  • 计算机科学

  • 生物学

  • Lorem Ipsum



2002/03





  • 主题

  • 主题



b $ b我使用的数据库包含如下信息:


  • year(2001/02)


  • 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']。'和stud.sid = smod.sid和smod.mid = mods.mid order by ayr ASC;

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

回声报名和进度;
echo< table width ='150'border ='1'>;

echo< th>模块选择< / th>;
echo< td>。$ row [ayr]。< / td>;


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


if($ temp_year!= $ row [ayr]){
echo< td> 。 $ row [ayr]。 < / TD> 中;
}

echo< td> 。 $ row [mid]。 < / TD> 中;
回显< td> 。 $ row [mtitle]。 < / TD> 中;
回显< td> 。 $ row [credits]。 < / TD> 中;

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

?>

我不知道如何在一年之内将其分开,任何帮助都很棒。谢谢。

解决方案

我可能会这样编码,可能不是唯一的方法,但应该基于我相信你正在努力实现。请确保将order by添加到您的SQL查询中。

  echo< table cellspacing = '40 >中; 
$ query2 =SELECT mods.mid,ayr,mtitle,credits FROM stud,smod,mods WHERE stud.sid ='。$ _ POST ['stuNo']。'和stud.sid = smod.sid和smod.mid = mods.mid ORDER BY ayr DESC;

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

回显注册和进度;
echo< table width ='150'border ='1'>;
echo< tr>< td colspan =3>< b>模块选择< / 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>;
回显< td> 。 $ row [mid]。 < / TD> 中;
回显< td> 。 $ row [mtitle]。 < / TD> 中;
回显< td> 。 $ row [credits]。 < / TD> 中;
回显< tr>;
}
echo< / table>;


I'm creating a display for a student module webpage that displays in this format

2001/02

  • Computer Science
  • Biology
  • Lorem Ipsum

2002/03

  • Subject
  • Subject
  • Subject

In that style The data base I'm using contains information such as

  • year(2001/02)
  • credit(10)
  • mods.mid(CS500)
  • mtitle(module title - software engineering, biology, chemistry...etc)

the PHP code I have displays every module title, so literally I giant list of modules whereas I want to split it out like up there described, Years displayed THEN every module for that year. Any one people help me? Code down below:

<?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>";

?>

I wouldn't know how to seperate it by year, any help is great. thank you.

解决方案

I would probably code it like this, probably not the only way but should work based on what I believe you are trying to achieve. Please make sure to add the "order by" to your SQL query as well.

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>";

这篇关于使用PHP从MSQL查询创建一个HTML表,而不重复行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆