0

テーブルから正しい質問番号を選び出し、データベースに挿入しようとしています。行を追加するテーブルがあり、3つの行があるとすると、以下のテーブルは次のようになります。

Question No     Image

1              (file input)
2              (file input)
3              (file input)

以下は、上記のテーブルを作成するコードです。var qnum = 1;

var $qid = $("<td class='qid'></td>" ).text(qnum);
var $image = $("<td class='image'></td>"); 

    var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='return imageClickHandler(this);' class='imageuploadform' >" + 
        "Image File: <input name='fileImage' type='file' class='fileImage' /></label><br/><br/><label class='imagelbl'>" + 
    "<input type='submit' name='submitImageBtn' class='sbtnimage' value='Upload' /></label>" + 
    "<label><input type='button' name='imageClear' class='imageClear' value='Clear File'/></label>" +
    "</p></form>"); 

$tr.append($qid);
$tr.append($image);


    ++qnum;
    $(".questionNum").text(qnum);
    $(".num_questions").val(qnum);

私の質問は、たとえば、行2のファイル入力を使用するとします。たとえば、データベースに挿入するファイル入力と同じ行に質問番号を挿入するにはどうすればよいですか(挿入される質問番号は明らかに2になります)。

別の例として、たとえば行3のファイル入力を使用する場合、データベースに挿入するファイル入力と同じ行に質問番号を挿入するにはどうすればよいですか(挿入される質問番号は明らかに3になります)。

以下は、データベースにデータを挿入する際に現在持っているコード(メインコード)です。

$lastID = $mysqli->insert_id;         

 $imagequestionsql = "INSERT INTO Image_Question (ImageId, SessionId, QuestionId)  
    VALUES (?, ?, ?)"; 

     if (!$insertimagequestion = $mysqli->prepare($imagequestionsql)) { 
      // Handle errors with prepare operation here 
       echo "Prepare statement err imagequestion"; 
    } 

$qnum = 1;

$insertimagequestion->bind_param("isi",$lastID, $sessid, $qnum); 

$sessid =  $_SESSION['id'] . ($_SESSION['initial_count'] > 1 ? $_SESSION['sessionCount'] : ''); 

    $insertimagequestion->execute(); 

                if ($insertimagequestion->errno) { 
          // Handle query error here 
        } 

        $insertimagequestion->close(); 

現時点では、上記のコードはデータベースの質問番号に毎回番号1を挿入しているだけです

4

1 に答える 1

0

私があなたの質問を正しく理解していれば、次のような良い方法があります: PHP は、$_POST、$_GET、および $_FILES で「サブアレイ」をサポートしています。持っている場合はIE

<input type="file" name="upload[1]" />
<input type="file" name="upload[2]" />
<input type="file" name="upload[3]" />

$_FILES["upload"][X] (X は 1 から 3 の間) を使用すると、どのファイルのアップロードがトリガーされたかを簡単に確認できます。$_GET と $_POST についても同様です。特にJavaScript を使用してオンザフライで要素を追加する場合は非常に便利なので、このトリックを覚えておいてください。たとえば、次のようなコードを作成できます。

last_index = 1;
//later in the code
//....
$('#container').append('<input type="file" name="upload['+last_index+']" />');
last_index++;

次に、PHP コードで $_FILES["upload"] 配列の長さを確認し、array_keys でそのキーを取得して、どのファイル入力が「アップロード」されたかを確認することもできます。お役に立てれば。

于 2012-09-25T14:10:06.650 に答える