2014-04-14 2 views
-2

난 내가 새로운 사용자를 등록 내 페이지에 관심 영역을 가지고 관심 지역 선택 신청 기본 (빈) 내가 여기에이 오류 납니다 떠날 때하는 코드입니다 :경고 : foreground()에 대해 제공된 인수가 유효하지 않습니다.

91- //Interest 
    92-  foreach ($_POST['interest_id'] as $interest) 
    93-  { 
    94-   $query = "INSERT INTO user_interest (user_id, interest_id) 
    95-     VALUES ('$user_id', '$interest')"; 
    96-   $result = mysqli_query($link,$query); 
    95-  } 

이 내 입니다 관심 분야 페이지에 부 :

<label>Research Areas</label> 
     <select name="interest_id[]" class="small-input" multiple> 
     <?php 
      $query = "SELECT * FROM research_interest ORDER BY name ASC"; 
      $result = mysqli_query($link, $query); 
      while($row = mysqli_fetch_object($result)) 
      { 
     ?> 
      <option value="<?php echo $row->id; ?>"><?php echo $row->name; ?></option> 
     <?php 
      } 
     ?> 
     </select> 
    </p> 
+0

을 .. .input() 루프에 {if (isset ($ _ POST [ 'interest_id'])와 is_array ($ _ POST [ 'interest_id'])) {}'를 넣으시겠습니까? – Scuzzy

답변

3

이 자명, $ _POST된다 [ 'interest_id'] 문자열 값이지만 foreach는 배열을 기대하고있다.

$interest = (int) $_POST['interest_id']; 
$query = "INSERT INTO user_interest (user_id, interest_id) 
      VALUES ('$user_id', '$interest')"; 
$result = mysqli_query($link,$query); 

또는 배열 전달하는 경우 (당신이를, 나는이 모든 위의 게시 된 후 때까지를 읽어 보지 않았은), 당신은 첫 번째 빈 아니라고 테스트해야합니다

if(!empty($_POST['interest_id']) && is_array($_POST['interest_id'])) { 
foreach ($_POST['interest_id'] as $interest) 
{ 
    $query = "INSERT INTO user_interest (user_id, interest_id) 
    VALUES ('$user_id', '$interest')"; 
    $result = mysqli_query($link,$query); 
} } 
+1

'name = "interest_id []"'의 대괄호 표기법은 양식 데이터에서 채울 때 배열을 만들어야합니다. – Scuzzy

관련 문제