2010-05-22 6 views
0
내가 편곡 $에 문자열을 전달하면 사용자가 다음 "사과, 오렌지, 배"

mysql을

SELECT id, pos, FROM $db WHERE dtime>='$now' AND jsub IN ('$arr[1]') ; 

의 문자열로 결합되어 하나 이상의 (체크 박스) 옵션을 선택

[1] , 그것은 올바르게 작동하지 않을 것입니다, 어떻게 배열로 분할하고 올바르게 처리하는 MySQL IN 함수를 얻으시겠습니까?

+0

무엇이'arr [1]'에 들어 있습니까? – Sarfraz

+0

플래시에서 PHP로 전달 된 값 – proyb2

+0

값은 무엇입니까? 예제가 있습니까? 우리 모두가 텔레파시를 가지고 있다고 생각 하나? –

답변

2

사용 :

$str = "SELECT id, pos, FROM $db 
      WHERE dtime>='$now' AND jsub IN ('".explode(',',$arr."')"; 

및 이전 매개 변수를 소독하는 것을 잊지 마세요 ...

+0

누락 된 괄호가 있었지만 해결했습니다. 그러나 내 경우에는 작동하지 않습니다. 대체 문자열을 사용하여 쉼표의 양쪽에 '를 추가하면 해결할 수 있습니다. $ arr [1] = str_replace (",", " ','", $ arr [1]); – proyb2

0

문제는 WAY 불분명하다,하지만 난 당신이 원하는 의심 뭔가

foreach ($arr as $key => $item) $arr[$key] = mysql_real_escape_string($item); 
$in = "'".implode("','",$arr); 
$sql = "SELECT id, pos, FROM $db WHERE dtime>='$now' AND jsub IN ($in)"; 

같은 하지만 남자 야, 증오는을 추측한다.

PHP 코드없이 정적 쿼리를 가져 오지 않는 이유는 무엇입니까?
보고 싶다면 지금까지 작동합니까?
그렇지 않은 경우 적절한 쿼리를 위해 SO를 물어보십시오. SQL 쿼리, PHP 코드가 아닙니다.
예인 경우 정확한 쿼리를 생성하는 PHP 코드를 작성하십시오.
예제 1과 비교하십시오.
실패한 경우 - 결과 코드와 배열의 예를 제공하여 PHP 코드를 SO에게 문의하십시오.

따르기가 너무 어려워요?

+0

신경 쓰지 마라. 함몰시킬 필요가 없습니다. – proyb2

+0

나는 그와 같은 것을 의심했다. 평소처럼 디버깅이 부족합니다. 홈 간단한 체크리스트가 도움이 될 것입니다. –

1

FIND_IN_SET을 사용하십시오.

SELECT id, pos, FROM $db WHERE dtime>='$now' AND FIND_IN_SET(jsub, '$arr[1]')