-2

という名前のテーブルがありましたsubject。列id(PK) subject_name、、、、および(FK)total_classがありました。ユーザーがフォームに入力して送信しました。フォームの post メソッドで値を取得しました。フォームでは、6つの科目があり、すべての科目について、、、。これが私のコードですattendencecnictotal_classattendencesubject_name

if($_SERVER['REQUEST_METHOD']=='POST')
{

    $form=$_POST[form'];
    $s1=$_POST['sub1'];
    $s1=$_POST['sub2'];
    $s1=$_POST['sub3'];
    $s1=$_POST['sub4'];
    $s1=$_POST['sub5'];
    $s1=$_POST['sub6'];
    $month=$_POST['month'];

    $total_attend_1=$_POST['Ts1'];
    $total_attend_2=$_POST['Ts2'];
    $total_attend_3=$_POST['Ts3'];
    $total_attend_4=$_POST['Ts4'];
    $total_attend_5=$_POST['Ts5'];
    $total_attend_6=$_POST['Ts6'];

    $attend_1=$_POST['Attend_s1'];
    $attend_2=$_POST['Attend_s2'];
    $attend_3=$_POST['Attend_s3'];
    $attend_4=$_POST['Attend_s4'];
    $attend_5=$_POST['Attend_s5'];
    $attend_6=$_POST['Attend_s6'];
    $query=mysql_query("INSERT INTO subject VALUE( '','$s1','total_attend_1','$attend_1','$form','$month')") or die(mysql_error());
    /*My query should be here.Should I write 6 insert queries?*/

使ってみました

foreach($array as $attendee){
}

しかし、私の仕事がありませんでしたか?誰か助けてくれませんか?

4

3 に答える 3

3

正しい挿入構文は次のとおりです。

insert into subject values (sub1, ts1, attend_s1);

または複数の値を持つ

insert into subject values (sub1, ts1, attend_s1), (sub2, ts2, attend_s2), (...);
于 2012-11-30T21:45:23.017 に答える
2

私はあなたがこのようなものが欲しいと思います:

function x($str) {return mysql_real_escape_string($str);} // shorter function name
$rows = Array();
for( $i=1; $i<=6; $i++) {
  $rows[] = "(null,'".x($_POST['sub'.$i])."','".x($_POST['Ts'.$i])."','".x($_POST['Attend_s'.$i])."','".x($form)."','".x($_POST['month'])."')";
}
mysql_query("insert into `subject` values ".implode(",",$rows));

すべての変数の割り当てを削除し、$formどこかで定義していることを確認してください-投稿したコードには表示されません。

于 2012-11-30T21:44:56.107 に答える
1
// $post = a sanitized copy of $_POST

$entries = array( );
for ($i = 1; $i <= 6; ++$i) {
    $entries[] = " (NULL, '{$post['sub'.$i]}', '{$post['Ts'.$i]}', '{$post['Attend_s'.$i]}', '{$form}', '{$post['month']}') ";
}

$query = " INSERT INTO `subject` VALUES ".implode(', ', $entries);
于 2012-11-30T21:51:38.617 に答える