2017-12-13 6 views
2

以下は私のコードです。私は2つのMySQLデータベーステーブルを持っています.1つは「メンバー」で、もう1つは「参加者」です。テーブル "member"のデータをローカルホストページに表示したいと思います。ただし、データベーステーブルの「参加者」にチェックボックスを使用することで、複数の行の「メンバー」データを挿入することはできません。ハマった。どんな助けも大歓迎です。MySQLに複数の行を挿入するチェックボックス

<?php 
try { 
    $con = new PDO("mysql:host=localhost;dbname=kgruum member", "root", ""); 
    $sql = $con->query("SELECT * FROM member"); 
    echo "<table class='info' align='center' border='1'>"; 
    echo "<tr><td width='10'></td> 
     <td width='10'><b>ID</b></td> 
     <td width='500'><b>Name</b></td> 
     <td width='50'><b>Handicap</b></td><tr>"; 

    foreach($sql as $row) { 
     $ID = $row["ID"]; 
     $Name = $row["Name"]; 
     $Handicap = $row["Handicap"]; 
     echo "<tr> 
      <td><form method='POST' action='Add participant.php'><input type='checkbox' name='insert[]' value='$ID'></td> 
      <td>$ID</td> 
      <td>$Name</td> 
      <td>$Handicap</td><tr>"; 
    } 

    echo"</table><div align='center'><input type='image' value='submit' src='add selected button.png' alt='submit Button' onmouseover='this.src='pink add selected button.png'' onmouseout='this.src='add selected button.png'' name='add_btn' id='add_btn'></div><br></form>"; 


    if(isset($_POST['add_btn'])) { 
     if(!empty($_POST['insert'])) { 
      foreach($_POST['insert'] as $check) { 
       $st=$con->prepare("INSERT INTO participants(ID,Name,Handicap) VALUES('$ID','$Name','$Handicap')"); 
       $insert->bindParam('ID',$ID); 
       $insert->bindParam('Name',$Name); 
       $insert->bindParam('Handicap',$Handicap); 
       $st->execute(); 
       } 
      echo "<script type='text/javascript'> 
       alert('Successful Insert ! '); 
       window.location.href = 'Add participant.php'; 
       </script>"; 
     } else { 
      echo "<script type='text/javascript'>alert('You didn't choose which user you want to insert ! ')</script>"; 
     } 
    } 
} catch(PDOException $e) { 
    echo "error".$e->getMessage(); 
} 
?> 

答えて

0

$名前と$ハンディキャップの値を$ [ID]値だけを格納するinsert []配列に保存していません。

このような何か、解決するには:

<input type='checkbox' name='insert[]' value='$ID|$Name|$Handicap'> 

その後:

foreach($_POST['insert'] as $check) { 
    $values = explode('|', $check); 
    $ID = $values[0]; 
    $Name = $values[1]; 
    $Handicap = $values[2]; 
    //The rest of your SQL code goes here as you have it... 
    $check = ''; 
} 
+0

こんにちは、答えるために感謝を。しかし、それは動作しません。テーブル「メンバー」からデータを取り出してテーブル「参加者」に保存できないのだろうか? – cha

+0

これを修正する方法は、クエリで返されるエラーを探すことです。エラーは何ですか? – Grant

+0

プレビュー時にエラーは表示されません。これはメンバーのデータを表形式で表示し、「選択したものを追加」ボタンを表示しただけです。しかし、チェックボックスをオンにしてAdd selectedボタンをクリックすると、ボタンが機能しませんでした。 – cha

関連する問題