2016-03-29 16 views
0

私は、人々がグレードのリストを追加できるようにして、jQueryを使って最大9個の追加フィールドを追加することができます。 (彼らは1から10の任意の数を提出することができます意味)。私が知りたいのは、これらをすべて1つの文字列に変換したくないので、データベースに格納する方法です。私の懸念は、ユーザーが何グレードを入力しようとしているのか分からないため、最終的な配列番号を格納することができないということです(またはできますか?)PHPストアデータベースへの不明な配列の長さ

申し訳ありませんが、私はまだPHPとSQLに比較的新しいです!

+0

現在書かれているとおり、あなたが何を求めているのかは不明です。あなたは現在持っている情報(フォーム、PHPスクリプト、データベーススキーム、テーブル関係...)を追加できますか? –

+3

グレードは、各グレードの所有者にリンクされた1つのテーブルでなければなりません。卒業生表には、学生識別子、コース、および成績の3つの列を必要な数だけ持つことができます。 –

+0

私は、CVテーブルに関連する「成績」テーブルを持っています。そして、CVテーブルはユーザテーブルに関連しています。 1つのCV /履歴書には多くの成績があり、1人のユーザーには多くのCV /履歴書があります。たとえば、現在、Maths、A、GCSEのようなものを1つのエントリとしてアップロードし、英語、A *、A Levelを別のものとしてアップロードします。 – SixTailedFox

答えて

1

誤っていないとすれば、複数の科目で複数の成績を持つ1人のユーザーを節約することができます。

まず、我々は、フォームからの1つのユーザーIDを取得し、PHPでそれを置く:次に

$id = isset($_POST['id'])? $_POST['id']:''; 

カンマ区切り値として送信されます複数のグレードや科目取得:

//$id= explode(',',$_POST['id']);// For multiple users 
$grade= explode(',',$_POST['grade']); 
$subj= explode(',',$_POST['subject']); 
$entry= explode(',',$_POST['entry']); 

を今数えますグレード数:$count= count($grade);

for loopのカウントを使用してループ内に挿入する:

for ($i = 0; $i < $count; $i++) { 
    try { 
     $dbh->beginTransaction(); //$dbh is your PDO connection    
      $insertQ = "INSERT INTO `grades` (id, grade, subject, entry) 
         VALUES('$id', '$grade[$i]', '$subj[$i]','$entry[$i])";    
      $dbh->query($insertQ);    
      $dbh->commit(); 
      } catch (Exception $e) { 
       $error = $e->getMessage(); 

      } 
} 

希望します。