2016-04-25 47 views
-1

表中的行我有这样的代码如何修改HTML语言

<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    
+0

你的意思是你想把所有的课程都用同一个term_no分组在一起? –

+1

很可能要首先开始制作一个数组;) –

+0

是的,我想将所有具有相同term_no的课程组合在一起 – Steven

回答

0

的输出你可以做一个String数组,其中的每一个它认为细胞在该小区ID匹配相同term_no所有的课程。

尝试了这一点您当前的欧洲工商管理学院while循环:

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

编辑:我改变了代码升技现在尝试。

0

Here`s我会怎么做:

I`d改变你的SQL命令组和CONCAT结果有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)),创建一个数组并且做我想做的事情。

请注意,由于我不知道数据库的确切结构,因此我认为表格课程包含课程名称。进行必要的调整。