如何用HTML语言修改表中的行

时间:2016-04-25 17:30:46

标签: php html css sql

我有这段代码

<html>
<head>
<title> trans </title>
<body>
<style>
table, th, td {
border: 1px solid black;
width: 900px;
margin: auto;
}
h3{
text-align: center;
margin-top: 20px;    
}
</style>
<?php

$con = mysqli_connect('localhost', 'root', '');
mysqli_select_db($con,"uoh");  
$q = " SELECT * FROM `degree_plan` LEFT JOIN courses ON
degree_plan.course_number=courses.course_number
where major='COE'"; 

$result = mysqli_query($con , $q) ;
if($result){
   echo "<br />";
   echo "<table>";
   echo "<tr>";
   echo "<th>courses</th>";
   echo "<th>term_no</th>";
   echo "</tr>";
while($row = mysqli_fetch_array($result))
{

   echo "<tr>";
   echo "<td>" . $row["code"]. "</td>";
   echo "<td>" . $row["term_no"]. "</td>";
   echo "</tr>";
}
echo "</table>";
   }
?>
</body>
</html>

此代码的输出如下。 这里的每一门课程都在一排,但我不想那样。

--------------------------
course            term_no
--------------------------
CHEM 101            1
-------------------------
ENGL 101            1
-------------------------
MATH 101            2
--------------------------
PE 101              2

我怎样才能使代码不分开具有相同term_no的课程。 我想要像这样的输出

--------------------------
course            term_no
--------------------------
CHEM 101            1
ENGL 101            
-------------------------
MATH 101            2
PE 101              

2 个答案:

答案 0 :(得分:0)

你可以做一个String数组,其中每个单元格都包含与单元格id匹配的同一term_no中的所有课程。

尝试使用当前循环时的内容:

$str = array();
while($row = mysqli_fetch_array($result))
{
    $str[$row['term_no']] += ",".$row['code'];
}
foreach ($str as $key => $value)
{

   echo "<tr>";
   echo "<td>" . $value. "</td>";
   echo "<td>" . $key. "</td>";
   echo "</tr>";
}

编辑:我改变了代码abit试试吧。

答案 1 :(得分:0)

我将如何做到这一点:

我改变你的sql命令来分组和连接具有相同term_no值的结果。

SELECT group_concat(c.course), dp.term_no FROM `degree_plan` as dp LEFT JOIN courses as c ON
degree_plan.course_number=courses.course_number
where major='COE'
GROUP BY dp.term_no

完成后,我会恢复连接并由,分隔的数据。有了这个,我可以preg_replace('/,/' , '<br>', $row["code"])将每个,替换为<br>或者我可以在迭代(explode(",", $value))上爆炸所需的值,创建一个数组并做我想做的事。

请注意,由于我不知道您的数据库的确切结构,我认为表课程保存了课程的名称。进行必要的调整。