2016-07-26 18 views
3

私はテキストボックスの同じ名前を使用して私のデータベースに複数の値を追加するための解決策を見つけようとしていますが、私は傾けません。私は正確にそこにあると解決策がわからない 下記のコードを参照してください。 同じ名前のテクスチャボックスから複数の値を追加する方法はありますか?

<form action="" method="post"> 
         <?php 
         if(isset($_POST['pats'])){ 
          $pats = $_POST['pats']; 
          mysql_query("INSERT INTO trainings(pats) VALUES ('$pats')") or die(mysql_error()); 
         } 
         ?> 
         <input type="text" name="pats" placeholder="Pats"> 
         <input type="text" name="pats" placeholder="Pats"> 
         <input type="text" name="pats" placeholder="Pats"> 
         <input type="text" name="pats" placeholder="Pats"> 
         <input type="text" name="pats" placeholder="Pats"> 
         <input type="submit" name="insert" value="Add"> 
       </form> 

+1

使用のと、あなたはその配列によって配列に、ループをすべての値を取得し、保存されます:この回答を参照してください。 DBの –

答えて

0

で単一の文字列に配列を変換するために、彼らは、サーバーへの配列として送信されます。

あなたが別の行に値を追加したい場合は:あなたのバックエンドで

あなたは、その後、実際に対応するキーに値およびデータベースに挿入があるかどうかを確認、あなたが受け取った配列を反復処理することができます。

I)は、(mysql_real_escape_stringの追加が、それはまだSQLインジェクションに対して脆弱であるとして、あなたは、このコードを使用しないでください。このようhttps://stackoverflow.com/a/60496/3595565

<form action="" method="post"> 
     <?php 
     if(isset($_POST['pats'])){ 
      foreach ($_POST['pats'] as $pats) { 
       if(!empty($pats)){ 
        mysql_query("INSERT INTO trainings(pats) VALUES ('" . mysql_real_escape_string($pats) . "')") or die(mysql_error()); 
       } 
      } 
     } 
     ?> 
     <input type="text" name="pats[]" placeholder="Pats"> 
     <input type="text" name="pats[]" placeholder="Pats"> 
     <input type="text" name="pats[]" placeholder="Pats"> 
     <input type="text" name="pats[]" placeholder="Pats"> 
     <input type="text" name="pats[]" placeholder="Pats"> 
     <input type="submit" name="insert" value="Add"> 
</form> 
+0

フィリップ、ありがとうございます:) –

0

は、DB内の別個の行として入力からそれぞれの値を保存します。この

<form action="" method="post"> 
    <?php 
     if(isset($_POST['pats'])){ 
     foreach($_POST['pats'] as $pat) { 
      mysql_query("INSERT INTO trainings(pats) VALUES ('$pat')") or die(mysql_error()); 
     } 

     } 
    ?> 
        <input type="text" name="pats[]" placeholder="Pats"> 
        <input type="text" name="pats[]" placeholder="Pats"> 
        <input type="text" name="pats[]" placeholder="Pats"> 
        <input type="text" name="pats[]" placeholder="Pats"> 
        <input type="text" name="pats[]" placeholder="Pats"> 
        <input type="submit" name="insert" value="Add"> 
      </form> 

ようにそれを試してみてください。

+0

なぜダウン票の男ですか? –

+0

あなたはカンマで区切られた文字列としてデータを望んでいると仮定しているからです。別のインサートのためのソリューションを追加してください。その答えは問題ありません。 – Philipp

+0

DB内の単一のフィールドに複数の値を保存するのは適切な仮定です。彼はそれを達成するためにほかにどのようになっていますか? –

-1

名前の配列を渡すことができ、あなたのHTML内

<form action="" method="post"> 
<input type="text" name="pats[]" placeholder="Pats"> 
<input type="text" name="pats[]" placeholder="Pats"> 
<input type="text" name="pats[]" placeholder="Pats"> 
<input type="text" name="pats[]" placeholder="Pats"> 
<input type="text" name="pats[]" placeholder="Pats"> 
<input type="submit" name="insert" value="Add"> 
</form> 
-1

などの注意が[]の名前で、これらが呼び出され

<input type="text" name="pats[]" placeholder="Pats"> 
<input type="text" name="pats[]" placeholder="Pats"> 
<input type="text" name="pats[]" placeholder="Pats"> 
<input type="text" name="pats[]" placeholder="Pats"> 

...あなたの入力要素名を使用しますパットの配列を受け取りますHTML入力arrays..This方法のPHPは...

<?php 
    if (isset($_POST['pats'])) { 
     implode(',',$pats = $_POST['pats']); 
     mysql_query("INSERT INTO trainings(pats) VALUES ('$pats')") or die(mysql_error()); 
    } 
?> 

あなたはimplode() functioを使用することができますnはあなたの入力要素のname属性に[]追加区切り

+0

異なる行に値を挿入するソリューションを追加できますか? – Philipp

関連する問題