2016-07-28 5 views
0

人はすべてがOKであるが、0の値を持つ3つの余分な行がEMPLOYEE_ID複数行の挿入は0

if (isset($_POST['submit'])) { 
$i = 0; 
foreach ($_POST as $val) { 
    $user_id = $_POST['user_id'][$i]; 
    $employee_name = $_POST['employee_name'][$i]; 
    $remarks = $_POST['remarks'][$i]; 
    $time_in = $_POST['time_in'][$i]; 
    $time_out = $_POST['time_out'][$i]; 
    $team = $_POST['team'][$i]; 
    mysql_query("INSERT INTO attendance (employee_id, employee_name, remarks, time_in, time_out, team) VALUES ('$user_id', '$employee_name', '$remarks','$time_in', '$time_out', '$team')"); 
$i++; 
} 
} 

に挿入されます、これはフォーム

$time_in = date('Y-m-d H:i'); 
      $result=mysql_query("SELECT * FROM members WHERE login != 'admin'"); 
      $rowNo = 1; //Increment Row Number 
      while($row = mysql_fetch_array($result)) 
      { 
       $id = $row['member_id'];  
       $user = $row['login']; 
       $team = $row['team']; 
       echo "<tr align='left'>"; 
       echo"<td width='10px'><font color='white'>" .$rowNo++."</font>.</td>"; 
       echo"<td><font color='black'><input type='hidden' name='user_id[]' value='".$id."'/> <input type='hidden' name='employee_name[]' value='".$user."'/> " .$row['login']."</font></td>"; 
       echo"<td><font color='black'> 
       <select name='remarks[]'> 
       <option valur='Present'>Present</option> 
       <option valur='Absent'>Absent</option> 
       <option valur='Half Day'>Half Day</option> 
       </select> 
       </font> 
       </td>"; 
       echo"<td><font color='black'><input type='text' name='time_in[]' value='".$time_in."'/> <input type='text' name='time_out[]' value='".$time_out."'/> <input type='hidden' name='team[]' value='".$team."'/></font></td>"; 
       echo"<td>"; 
       echo "<p align='right'> 


</p></tr>"; 

      } 
ある複数の行を挿入する問題を有するイムと2つの余分な行を挿入します

どうすれば修正できますか?

ありがとうございました

+0

あなたの$ _POSTの内側には何ですか? '$ _POST'内のすべてのキーの上に'のvar_dump($ _ POST) 'あなたのループが繰り返さからの出力を投稿し、おそらくあなたは[' foreachの($ _POSTの線に沿って一つだけのマルチ値キー –

+0

'user_id'] as $ val) 'は常に' user_id'とみなされます。あなただけのPHPを学習している場合は、[ 'mysql_query'](http://php.net/manual/en/を使用しないでください。私は自分のフォームを掲載している –

+1

何かを反復処理していきます –

答えて

1

あなたのフォームはどのように見えますか?

また、あなたはmysql_コマンドを使用してはなりません。推奨されていません。 mysqli手続き型またはオブジェクト指向型を使用する必要があります。

編集可能性の高い答えを提供する...

の代わりに$ _POSTをループ、名前あなたのフォーム入力form_value[]または類似し、代わりにループの1:foreach($_POST['form_value'] as $val)

+0

:) converyにチームメイトが、その旧プロジェクトあまりにも多くを同意するが、これのは私がこのようにすべてのことはコメントする必要があります – lalthung

+1

をPDOに変換するためにあまりにも多くの仕事を続けなければならない非推奨ですが、その私の古いスクリプト。答えはありません –

+0

編集を確認してください - 申し訳ありませんが、あまりに早く提出しました。 –