2013-05-22 5 views
1

사용자가 검색 표시 줄에 항목 설명이 들어있는 변수와 일치하는 문자를 입력하면이를 기반으로 테이블에서 데이터를 검색하려고합니다.PHP MySQL LIKE 명령이 제대로 작동하지 않습니다.

내가 PHP에서 MySQL을 사용하여이 일을하고 있는데이 검색 코드입니다 지금까지 가지고

$ItemDesc = $_POST['ItemDesc'];

$query = "select * from StockItems where ItemDesc LIKE '%$ItemDesc%'";

그러나 나는 올바른 결과를 가져 오는 아니에요, 내가 무엇을 생각합니다 돌아 오는 것은 항상 일치하지 않는 문자를 입력 함에도 불구하고 SQL 테이블의 모든 데이터입니다.

예. SQL tabel에 하나의 필드가 있고 ItemDesc 행에 'Fight'가 포함되어있는 경우 검색 상자에 'xxx'를 입력하고 필드를 클릭하면 필드가 항상 검색됩니다.

+0

'$ _POST [ 'ItemDesc']'이 (가) null 또는 빈 문자열이 아닌 값을 포함하고 있습니까? 'LIKE '%%' '는 모든 결과를 반환합니다. 'var_dump ($ _ POST [ 'ItemDesc'])'를 시도하고 확인하십시오. – phpisuber01

+0

왜 테스트는 단지 테스트입니까 ?? –

+1

자녀가 수정 버튼을 가지고 놀고있는 사람이 있습니까? –

답변

3

당신은 당신의 $ItemDesc 변수가 인 print_r 또는 상황이 떨어지고있다 위치를 확인 $ItemDesc의 내용과 $_POST을 위해서 var_dump하는

select * from StockItems where ItemDesc LIKE '%%' 

시도처럼 찾고 MySQL로 그렇게 설정되지 않습니다. 그러나

는 또한이 쿼리에 대한 결과를 선택이다

+0

'$ ItemDesc = $ _POST [ 'ItemDesc'];'설정하지 않았습니까? –

+0

입력란에 입력 한 이름이 ItemDesc이고 양식 작업이 게시이고 사용자가 입력란에 정보를 입력했다고 가정하여 설정합니다. 많은 ANDs가 있습니다 ... 최선을 다합니다. – Orangepill

+0

대단히 감사합니다. @Orangepill 문제는 내 입력 이름이 변수와 달랐습니다. 결국 그것은 잘못된 HTML이었습니다 : / –

-2
$item = $_POST['itemDesc']; 

$result = mysql_query("select * from StockItems where ItemDesc LIKE '%$item%'"); 

유저 랜드에서 오는 입력을 살균 적어도 몇 가지 기준 (최소 길이) 쿼리를 실행하기 전에 $ ItemDesc을 충족하는지 확인하는 것이 좋습니다 것 사용자는 itemdesc 필드에 모든 장소에 대한 문자를 할당합니다.

관련 문제