2016-04-25 6 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> 

このように、このコードの出力を持っています。 ここでは1つの行のすべてのコースが、私はそれが好きではありません。

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

私はどのようにコードを作ることができます同じterm_noを持つコースを分離しないでください。 私はあなたがそれの各セルは、セルIDと一致する同じterm_no内のすべてのコースを保持している文字列の配列を行うことができ、この

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

同じterm_noを持つすべてのコースをまとめてグループ化することを意味しますか? –

+1

おそらく配列を作ることで始めたいと思うかもしれません;) –

+0

はい、私は同じterm_noを持つすべてのコースをグループ化したい – Steven

答えて

0

のような出力をしたいです。

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

EDIT:私は、コードABITは今それを試してみてください変更

は、現在のwhileループのINSEADこれを試してみてください。私はこれを行うだろうか

0

Here`s:

I`d term_noの同じ値を持っていたグループと、連結業績へのあなたのSQLコマンドを変更します。

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))で希望の値を爆発させて配列を作成し、それでやりたいことをすることができます。

DBの構造が分からないので、テーブルコースにはコースの名前が入っていると思います。必要な調整を行います。

関連する問題