0

私のスクリプトの上部近くのsession_start(); 私は以下のコードを持っています:

    if (isset($_POST['id'])) {

    $_SESSION['id'] = $_POST['id'];

    }

    if(isset($_SESSION['sessionNum'])){
                //Declare my counter for the first time

                $_SESSION['initial_session'] = $_SESSION['sessionNum'];
                $_SESSION['sessionNumber'] = intval($_SESSION['sessionNum']);
                $_SESSION['sessionCounting'] = 1;

        }

    elseif (isset($_POST['submitMarks']) && $_SESSION['sessionCounting'] < $_SESSION['sessionNumber']) {
        $_SESSION['sessionCounting']++;
    }

    $sessionMinus =  $_SESSION['sessionCounting'];
    $sessionConcat =  $_SESSION['sessionCounting'];


    if ($sessionMinus == $_SESSION['initial_session']){ 

        $action = 'infopenaltymarks.php'; 

    }elseif($sessionMinus != $_SESSION['initial_session']){ 

        $action = $_SERVER['PHP_SELF']; 

    }

$assessment = $_SESSION['id'] . $sessionConcat;

ここで、ページの見出しに次のコードを使用しています。

<h1>INDIVIDUAL MARKS FOR EACH ANSWER: ASSESSMENT (<?php echo $assessment ?>) <?php echo $sessionMinus ?> OF <?php echo $_SESSION['initial_session'] ?></h1>

ここSessionで、データベース内のテーブルが次のようになっているとします。

SessionId  SessionName
1          AAA1
2          AAA2
3          AAB

上記の表を見ると、複数の試験がAAA1ありAAA2、1つの試験がありAABます。

今、私が試験に取り組んでAAA1いるとしましょう、それは以下のような見出しを表示します:

各回答の個別のマーク:評価(AAA1)1/2

上記の見出しは正しい試験名を表示しているので正しいです、そしてそれは2つのAAA試験 のうちの最初のものを述べています

このページを送信すると、見出しが変更され、AAA以下の2番目の試験に進みます。

各回答の個別のマーク:評価(AAA2)2/2

繰り返しますが、上記の見出しは正しいです。

私が抱えている問題は、単一の試験がある場合、またはこの場合はAAB単一の試験であるため、試験名の末尾に番号が含まれていないためAAB、DBのように表示されるだけです。

しかし、見出しを出力すると、次のように表示されます。

各回答の個別のマーク:評価(AAB1)1/1

これで、上記の見出しは試験ではないため正しくないことがわかります。括弧の間にあるAAB1はずです。AABそれで、私の質問は、試験が1 OF 1単一の試験である場合、つまり、試験名の末尾の括弧内の数字1を削除して、表示されAABないようにするにはどうすればよいAAB1ですか?

4

1 に答える 1

0

1より大きい場合にのみ、セッション数を追加します

$assessment = $_SESSION['id'];
if ($_SESSION['initial_session'] > 1) {
    $assessment .= $sessionConcat;
}

行を印刷する直前に修正する

<?php
if ($_SESSION['initial_session'] == 1) {
    $assessment = substr($assessment, 0, -1);
}
?>
<h1>INDIVIDUAL MARKS FOR EACH ANSWER: ASSESSMENT (<?php echo $assessment ?>) <?php echo $sessionMinus ?> OF <?php echo $_SESSION['initial_session'] ?></h1>
于 2012-11-16T03:18:14.777 に答える