체크 박스 선택에 따라 다중 카테고리의 유무에 관계없이 mysqli 전체 텍스트 검색을 만들고 싶습니다.MySQLi 전체 텍스트 검색 여러 컬럼 카테고리
검색은 동일한 열에있는 네 가지 범주를 기반으로합니다.
검색 카테고리는 Windows, 게임, 태블릿, 모바일입니다.
체크 박스 선택 검색을 통해 선택한 카테고리/다중 카테고리를 선택한 카테고리에만 적용해야하는 경우. 검색
테이블 구조
id category title date ...
1 windows windows7 d1 ...
2 games windows games d2 ...
3 tablet windows tablet d3 ...
4 mobile windows mobile d4 ...
5 windows windows8 d5 ...
6 windows windows vista d6 ...
체크 박스는
검색
<li><label><input name="all" type="checkbox" checked="checked" />All</label></li>
<li><label><input name="windows" type="checkbox" />Windows OS</label></li>
<li><label><input name="mobile" type="checkbox" />Windows Mobile</label></li>
<li><label><input name="games" type="checkbox" />Windows Games</label></li>
<li><label><input name="tablet" type="checkbox" />Windows Tablet</label></li>
예 1에서 :
Search for 'windows' should return result as
windows7
windows8
windows vista
When only checkbox windows is checked
예 2 :
나는 쿼리를 만들었지 만 전혀 작동하지 않습니다.
$query = "SELECT * FROM $table WHERE ";
$query .= "category='' ";
$query .= "OR category='windows' ";
$query .= "OR category='games' ";
$query .= "OR category='mobile' ";
$query .= "OR category='tablet' ";
$query .= " AND MATCH (title) AGAINST ('+$keyword*' IN BOOLEAN MODE) ORDER by id desc, title desc LIMIT 10";
나는이 있지만 작동하지 않는 것처럼 노력했다.
$query = "SELECT * FROM $table WHERE ";
$query .= "MATCH (category) AGAINST ('' IN BOOLEAN MODE) ";
$query .= "OR MATCH (category) AGAINST ('windows' IN BOOLEAN MODE) ";
$query .= "OR MATCH (category) AGAINST ('games' IN BOOLEAN MODE) ";
$query .= "OR MATCH (category) AGAINST ('mobile' IN BOOLEAN MODE) ";
$query .= "OR MATCH (category) AGAINST ('tablet' IN BOOLEAN MODE) ";
$query .= " AND MATCH (title) AGAINST ('+$keyword*' IN BOOLEAN MODE) ORDER by id desc, title desc LIMIT 10";
작동하지 않는 이유를 확인하고 선택한 입력란에 대해 검색어를 검색하는 방법을 제안하십시오.
감사합니다.
로 체크 박스 필드를 호출해야
주 (원시 mysqli 너무 많은 코드를 취할 것 같은) safeMysql 기반으로하는 솔루션을 간다 field 반대 'field1''? 내게 꽤 이상하게 보입니다. –
@YourCommonSense 거기에 테이블과 검색의 일부 열은 선택된 필드가있는 경우에만 행을 기반으로 제목에서 수행해야합니다. –
오류 메시지가 나타 납니까? 바이올린이나 샘플 데이터 및 테이블 스키마에 대한 링크를 게시 해보십시오. 그러한 정보가 부족한 질문은 답변하기가 쉽지 않으며 자주 다운 투표됩니다. field1, field2 등이 같은 테이블의 다른 필드라고 가정합니다. 이 경우 따옴표를 인용 부호로 묶지 않으면 조회가 작동합니다. 즉, field = field1 또는 field = field2 OR ... –