2012-03-31 9 views
0

2ページからなるアプリケーションがあります。これらのページの1つでは、セッションの3文字のIDが生成され、テキストボックスに必要なセッション数と、セッションに必要な総数をテキストボックスに入力することができます。複数行と単一行を正しくデータベースに挿入する方法

このページが送信されると、そのページは次のページに移動し、その間にこれらの詳細がデータベースに挿入されます。ユーザーがセッションを1つだけ必要とする瞬間に、データベーステーブルへの詳細の挿入が完全に機能します。

例:セッションが「ABA」で、セッション数が「1」、合計数が「20」の場合、行はセッションDBテーブルに次のように挿入されます。

SessionId TotalMarks 

ABA   20 

しかし、私が遭遇したい問題は、以下の通りです:

私たちは、同じセッションID「ABA」と合計のマークを持っているとしましょう、まだ「20」であるが、違いは、ユーザーが番号を望んでいるということですセッション数を3にするには、テーブル行にこれを挿入します:

SessionId TotalMarks 

ABA1   20 
ABA2   20 
ABA3   20 

複数のセッションがあるように、各セッションの横に番号があり、最初のセッションであることを示すABA1、2番目のセッションであることを示すABA2、3番目のセッションであることを示すABA3が含まれています。ユーザが総数が「20」であると述べたので、これはこれらのセッション行すべてに含まれます。

私の質問はどうすれば複数のセッションがある場合は、各セッションIDの隣に数字を追加し、それらのセッションの総数を合計することができますか?しかし、ユーザーが1つのセッション数だけを必要としている場合は、3文字のsessionIdを番号なしで表示しています。

$sql="INSERT INTO Session (SessionId, TotalMarks) 
VALUES 
(' ". mysql_real_escape_string($_POST['id']) . "',' ". mysql_real_escape_string($_POST['textMarks']) . "')"; 

mysql_query($sql); 
以下

3文字のSessionId、セッションテキストボックスと合計マークテキストボックスの数を含むフォームのコードである:以下

は、セッションテーブルでのSessionIdとTotalMarksを挿入するためのINSERT値コードです。

 <form action="QandATable.php" method="post" id="sessionForm"> 

      <p><strong>1: Your Session ID: </strong><?php echo $id; ?></p> 
      <input type='hidden' name='id' value='<?php echo $id; ?>' /> 

    <p><strong>2: Number of Sessions you Require:</strong> <input type="text" id="sessionNo" name="sessionNum"/></p> 

    <p><strong>3: Total Marks: </strong><input type="text" id="txtMarks" name="textMarks" /></p> 
</form> 
+0

なぜありません追加の列 "numberOfSessions"を追加すると、ABA | 20 | 3? – Swader

+0

1つのセッションがある場合、ドロップダウンメニューなどからABA1を選択すると表示されません。 – user1304948

+0

まだ問題は表示されません。データベースにABA1はまったくありません。 ABAとのセッションが1つしかない場合、行は次のようになります。ABA | 20 | 1、3がある場合、次のようになります。ABA | 20 | 3.どちらの場合でもABA1またはABA3は​​ないので、ドロップダウンメニューにABAを表示するだけです。 – Swader

答えて

0

このような何かはあなたが必要なものでなければなりません:

<?php 

    // Reset the array 
    $insert = array(); 

    // Iterate over the number of desired sessions and add the relevant INSERT VALUES 
    for ($i = 1, $n = $_POST['sessionNum']; $i <= $n; ++$i) 
    { 
    $insert[] = "'" . mysql_real_escape_string($_POST['id']) . $i . "', '" . mysql_real_escape_string($_POST['textMarks']) . "'"; 
    } 

    // Create the SQL string 
    $sql = "INSERT INTO `Session` (`SessionId`, `TotalMarks`) VALUES (" . implode('), (', $insert) . ")"; 

    // Perform the query 
    mysql_query($sql); 
+0

私はこれを試して、あなたの答えに感謝します。 – user1304948

+0

あなたは天才です、あなたの助けをありがとう、それは完全に働いています:) – user1304948

関連する問題