2017-12-13 38 views
2

아래 코드는 제 코드입니다. 두 개의 MySQL 데이터베이스 테이블을 가지고 있는데 하나는 "멤버"이고 다른 하나는 "참가자"입니다. 내 로컬 호스트 페이지에 "멤버"테이블의 데이터를 표시하고 싶습니다. 그러나 데이터베이스 테이블 "참여자"에 대한 확인란을 사용하여 "구성원"데이터의 여러 행을 삽입 할 수 없습니다. 나는 붙어있다. 어떤 도움이라도 대단히 감사합니다.체크 박스로 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 값을 저장하는 삽입 [] 배열에 $ Name 및 $ Handicap 값을 저장하지 않습니다.

는 해결 같은 것을 수행합니다 다음

<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"버튼을 보여주었습니다. 그러나 확인란을 선택한 후 Add selected 버튼을 클릭하면 버튼이 작동하지 않습니다. – cha