2011-04-09 3 views
0

얘들 아를 querys, 나는 그것은 데이터를 잡고, 나는이 기능의 작동을 체크 박스의 HTML/템플릿이 있음을배열 PHP 문제와 SQL이

   {foreach $rows as $row} 
      <input type="checkbox" name="likes[]" value="{$row.ID}">{$row.Interests}<br> 
      {/foreach} 

를 만들기 위해 노력하고 멋지와 PHP를 사용하고 있습니다 내 데이터베이스에서 테이블

이제

내가 내 데이터베이스에 데이터를 저장하기 위해 시도하고

내 데이터베이스에 데이터를 입력하기 위해 사용하고있는 스크립트가 있음을
 // $likes = mysql_escape_string($likes); 

     $connection = mysql_open(); 
     $insert = "insert into Users " . 
      "values (null, '$firstName', '$lastName', '$UserName', '$email', from_unixtime('$DOB'), '$join', '$gender')"; 


     $result = @ mysql_query ($insert, $connection) 
      or showerror(); 
     $id = mysql_insert_id(); 
     //echo $id; testing what it gets. 
      mysql_close($connection); 

     $connection = mysql_open(); 
     foreach($likes as $like) 
     { 

     $insert3 = "insert into ProfileInterests " . 
     "values ('$id', '$like', null)"; 
     $result3 = @ mysql_query ($insert3, $connection) 
     or showerror(); 

     } 
     mysql_close($connection) 
     or showerror(); 
    } 

...하는 이상 단지 청소 더있다 사용자 i 정말 내 말 들어. mysql_open()은 제 자신의 함수입니다. 너무 걱정하지 마십시오.

$likes = @$_POST['likes']; 

내가 좋아하는 것을 얻기 위해 사용하고있는 것 .... 나는 이것이 잘못되었다고 생각합니다. 나는 무엇을해야할지 모르겠다 ....

나는이 오류를 지금 받는다. foreach()에 대해 잘못된 인수가 제공되었습니다 변수 $ likes와 완전히 관련이 있다고 생각합니다. 배열과 같이 처리되지 않는다고 생각합니다. 내가해야 할 것에 대해 생각합니다. 나는 꽤 초보자입니다.

답변

1

다음 행

$likes = join(",",$likes); 

의 값을 포함하고 쉼표로 구분하는 $likes 문자열$likes 배열 변환된다.

그래서 나중에, 당신은 $likes을 통해 루프를 시도 할 때, 그것의 더 이상 배열 : 그것은 문자열의 -의 foreach에 대한 공급 잘못된 인수()을 설명합니다. 주석 후


편집 : 다음 줄을 호출 :

$likes = mysql_escape_string($likes); 

$likes가 배열하여, 당신은 문자열에 mysql_escape_string 작품과 같은 몇 가지 문제를 얻을 것이다 경우. 배열을 통해 반복하는 동안, 각 항목에 mysql_escape_string를 사용해야하는 대신 한 번에 전체 배열을 벗어나려고 노력의

- 같은 비트하십시오 (!) 참고로

foreach($likes as $like) 
{ 
    // escape the current item : 
    $escaped_like = mysql_real_escape_string($like); 

    $insert3 = "insert into ProfileInterests values ('$id', '$escaped_like', null)"; 
    $result3 = @ mysql_query ($insert3, $connection) or showerror(); 
} 


을 : 당신이해야 귀하의 변수에 var_dump()을 사용하십시오. 개발 중에는 그 코드가 무엇을 포함하고 있는지 알기 위해 코드를 이해하는 데 도움이됩니다.

+0

난 그냥 내가 왜 깨달았다 제거 : P 하지만 지금) (이러한 오류를 mysql_escape_string을 얻을 매개 변수 1, 배열이 주어진 문자열이 될 것으로 기대 경고 : foreach는() 여전히 배열 데 문제에 대한 공급 잘못된 인수 나는 생각한다 –

+0

Simplicity ... 그것은 항상 우리를 죽인다 : D – Khez

+0

그것이 일단 편집되면 !!!!! OMG 고마워요, 신원이 당신인지 아니면 키스 신 이시여, 고맙습니다! –