使用PHP从MSQL查询创建一个HTML表,而不重复行? [英] use PHP to create an HTML table from a MSQL query, without duplicate rows?
问题描述
$ 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屋!