2016-12-24 10 views
-2

私は質問表を持っていて、件名表と質問表にはオンライン試験のための主題に関する質問が含まれています。php mysqlでこれらのデータを取得して表示する方法は?

サブジェクト名をヘッダーにして件名の賢明な質問を取得し、例のような件名のシリアル番号のすべての質問を表示する必要があります。数学:Q1、Q2、Q3 英語:Q1、Q2、Q3など。 どのようにPHPとMySQLでそれを達成する。質問表と主題表を以下に示す。

Question Table

Subject table

質問サンプルデータが

Question sample

enter image description here

<?php 
    require_once 'config.php'; 
    //$con = mysqli_connect("localhost","root","","database_name"); 
    $query1 = "SELECT q.q_id,q.setq_no, q.qtext_eng, s.sub_id, s.sub_name 
    FROM question q 
    INNER JOIN subject s ON s.sub_id = q.sub_id 
    INNER JOIN questionset qs ON qs.qset_id = q.qset_id 
    WHERE qs.qset_id =2 ORDER BY s.sub_id"; 
    ?> 
<table class="table table-bordered"> 
<thead> 
<tr> 
    <th>Q.No</th> 
    <th>Q Set number</th> 
    <th>Q text eng</th> 
</tr> 

以下に示します。 0

<?php 
$result1 = mysqli_query($link,$query1); 

while($row1 = mysqli_fetch_array($result1)) 
{ 
$subID = $row1['sub_id']; 
    $subName = $row1['sub_name']; 
    ?> 
    <h2><?php echo "$subName" ?></h2> 

<?php 
    error_reporting(0); 


    $sno++; 
    $qSet = $row1['setq_no']; 
    $qEng = $row1['qtext_eng']; 

?> 
<tr> 
    <td><?php echo $sno; ?></td> 
    <td><?php echo $qSet; ?></td> 
    <td><?php echo $qEng; ?></td> 
</tr> 
</tbody> 
</table> 
    <?php 
    } 
?> 
+0

残りと同じように追加することができ、いくつかの最小限のテキストサンプルデータ、期待される出力と何がそうしようとしたを投稿してください。遠くに – GurV

+1

と解決されたあなたの他の質問を解決した回答を受け入れる –

+0

まあ、あなたのコードを見せて、まだ何か試してみましたか?ここで何か試してみると、助けを得ることができます。 – Kumar

答えて

2

私はここにquestion表からの列の一部を含めています、あなたは

<?php 
$con = mysqli_connect("localhost","root","","database_name"); 

$query1 = "SELECT q.q_id,q.setq_no, q.qtext_eng, s.sub_id, s.sub_name 
FROM question q 
INNER JOIN subject s ON s.sub_id = q.sub_id 
INNER JOIN questionset qs ON qs.qset_id = q.qset_id 
WHERE qs.qset_id =2 ORDER BY s.sub_id"; 

$presubID = 0; 

<table class="table table-bordered"> 
while($row1 = mysqli_fetch_array($result1)) 
{ 
    $subID = $row1['sub_id']; 
    if($subID != $presubID){ 
    $subName = $row1['sub_name']; 
    <h2><?php echo "$subName" ?></h2> 
    $sno=0; 

     <thead> 
     <tr> 
      <th>Q.No</th> 
      <th>Q Set</th> 
      <th>Q text eng</th> 
     </tr> 
     </thead> 
    } 
    $presubID = $subID; 

    $sno++; 
    $qSet = $row1['setq_no']; 
    $qEng = $row1['qtext_eng']; 

    <tr> 
    <td><?php echo $sno; ?></td> 
    <td><?php echo $qSet; ?></td> 
    <td><?php echo $qEng; ?></td> 
    </tr> 

<?php 
    } 
?> 
</table> 
+0

これはあなたの質問に答える場合は受け入れてくださいupvote私の答え – ab29007

+0

内部結合を使用して単一のmysqliクエリで取得することができます – Shaun

+0

あなたはあなたのケースではすべきではないので、外部のwhileループは役に立たないし、別々の主題について5つの別々の共同照会を実行します。しかし、とにかくここに良い例があります:http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_join_inner – ab29007

関連する問題