2012-02-21 4 views
0

php와 sql을 사용하여 데이터베이스에 삽입 된 폼에서 선택된 값에서 값을 가져 오려고합니다. 나는 html과 php를 포함 시키려고 노력하고있다. PHP의 첫 번째 비트는 훌륭하게 작동합니다. php의 두 번째 비트는 데이터베이스에 삽입 된 폼에서 체크 상자의 값을 가져 오는 많은 시도 중 하나입니다. 도와 줘서 고마워!PHP를 사용하여 폼의 checkboxes 배열에서 데이터베이스로 값을 가져 오는 방법

<?php 

$sql = "INSERT into students set student_number = '{$_POST['student_number']}', 
first_name = '{$_POST['first_name']}', last_name = '{$_POST['last_name']}', degree = 
'{$_POST['degree']}'"; 
mysql_query($sql); 

?> 

<?php 

$classes->bind_result($class); 
$classes->execute(); 
$class = array(); 
while ($classes->fetch()) { 
$class[] = $class; 
} 

?> 
<div class="div1">COP1000:</div><input class="checkbox1" type="checkbox"  
value="COP1000" name="class[]" id="class[]" /><br /> 

<div class="div1">COP2800:</div><input class="checkbox1" type="checkbox" 
value="COP2800" name="class[]" id="class[]" /><br /> 

<div class="div1">CIS2910C:</div><input class="checkbox1" type="checkbox"  
value="CIS2910C" name="class[]" id="class[]" /><br /> 

<div class="div1"> COP2830:</div><input class="checkbox1" type="checkbox" 
value="COP2830" name="class[]" id="class[]" /><br /><br /> 
+2

[오, 안돼! SQL Injection!] (http://en.wikipedia.org/wiki/SQL_injection) – kapa

+0

'$ classes'는 어디에 정의되어 있습니까? – ale

+0

@bazmegakapa는 정확합니다 ..'sprintf'를 사용하여 쿼리를 만들고 mysql_real_escape 문자열을 사용하는 것을 고려하십시오. SQL 주입 공격을 원하지 않습니다 : – ale

답변

1

$_POST['class']은 배열입니다.

데이터베이스를 자연스럽게 문자열로 변환하여이 값을 데이터베이스의 한 필드에 삽입 할 수 있습니다. 가장 쉬운 방법은 다음과 같습니다.

$str = implode(',', $_POST['class']); 

값이 쉼표 (,)로 표시됩니다. 모든 값을 읽고 자 할 때이 같은 explode()을 사용할 수 있습니다 : 당신이 루프 할 경우 모든 값을 통해

$array = explode(',', $str); 

모든 값의 업데이트/작업을 수행, 당신이해야 배열을 통해 루프 :

foreach($_POST['class'] as $class) { 
    // run code per class 

    // example 
    $sql = sprintf("INSERT INTO `table` (`class`) VALUES('%s')", mysql_real_escape_string($class)); 
} 

중요 사항 (관련 없음) 참고 : 데이터베이스에 입력하기 전에 입력 내용을 위생 처리해야합니다. 그렇지 않은 경우 사용자는 SQL 쿼리를 확장 할 수 있으며 기본적으로 데이터베이스를 사용하여 모든 작업을 수행 할 수 있습니다. 자세한 내용을 보려면 bazmegakapa's link을 클릭하십시오.

+1

'부적합 '** 관련성이 높음 ** – Flukey

+0

@Flukey 질문과 관련이 없습니다. –

1

당신이 어떤 문제가 당신이

var_dump() 그래서

var_dump($_POST); 

사용할 사용할 수있는 몇 가지 변수를 포함 그리고 당신은 거 당신이 POST를 통해 보내는 모든 얻을 것을 알게마다.

이제 $ _POST [ 'class']도 확인하고 답을 얻을 때까지 계속 진행하십시오.

관련 문제