2011-08-11 3 views
-2

나는 여기 새로 왔지만 ID와 체크 박스의 값을 내 데이터베이스에 삽입하는 데 문제가 있습니다. 양식의 코드는데이터베이스에 체크 박스가있는 옆에 숨겨진 필드 값을 삽입하는 방법

입니다.

<?php 
    include('db.php'); 
    if(isset($_POST['courses'])) 
    echo 'lie'; 
    else 
    echo 'true'; 
    foreach($_POST['courses'] as $row=>$id){ 

    $courses=$id; 
    $cid = $_POST['cid'][$row]; 
    $sql = "insert into selected_courses values ('','$courses','$cid')"; 
    $r = mysqli_query($dbc,$sql); 
    } 
    if($r) 
    echo 'done'; 
    ?> 

덕분에 많은 :

<?php 

include('db.php'); 

$sql = "select * from sheet1 order by course_level asc"; 
$r = mysqli_query($dbc,$sql) or die(mysqli_error($dbc)); 
$co = ''; 
while($row = mysqli_fetch_array($r)) { 
$co .= '<tr><td>'.$row['course_level'].'</td><td><input name="courses[]" 
    type= "checkbox" value = "'.$row['course_code'].'">'.$row['course_code'].' 
</td>  <td>'.$row['course_title'].'</td><td>'.$row['course_lecturer'].' 
</td><input type=hidden name=cid[] value="'.$row['cid'].'"> 
</tr>'; 

    } 

?> 

는 그리고이 액션 코드입니다.

+2

문제 무엇인가가된다이

<input type="checkbox" name="courses[]" value="<?php echo htmlspecialchars($row['cid']) ?>"> 

처럼 체크 박스를 숨겨진 입력을 제거하고 구조 것 ? – Dor

답변

0

selected_courses 테이블의 동일한 행 (course_codecid)에 서로 다른 두 개의 참조 값을 저장하려고하는 것이 주된 문제입니다. 실제로는 기본 키 (cid?) 만 저장해야합니다.

나는 당신의 selected_courses 테이블에서 course_code 열을 떨어 제시 그런 다음 INSERT 쿼리는 단순히

// Forget mysqli, move to PDO 
$stmt = $dbc->prepare('INSERT INTO selected_courses (cid) VALUES (?)'); 
$stmt->bindParam(1, $cid); 
foreach ($_POST['courses'] as $cid) { 
    $stmt->execute(); 
} 
관련 문제