사용자가 5 개의 입력 필드를 사용하여 mysql 데이터베이스를 검색 할 수있는 웹 페이지가 있고 각 입력 필드가 mysql 테이블의 열과 일치합니다. 지금부터는 데이터베이스를 검색 할 수 있지만 모든 필드는 테이블에있는 것과 정확하게 일치해야하며 결과가 반환되기 위해서는 전체 LIKE 및 AND 문이 필요합니다. 내가 원하는 것은 데이터베이스가 주어진 정보를 포함하는 모든 인스턴스를 반환하는 것보다 처음 두 필드 만 알고있는 경우입니다. 또한 사용자가 처음 두 필드 이상을 채우는 경우 쿼리는이를 고려하여 주어진 모든 정보와 일치하는 모든 결과를 반환합니다. 나는 가중치가있는 검색을 보았고, 그것이 내가 필요로하는 것에 가깝게 만들 것이라고 생각했다. 그러나 가중치가있는 검색은 항상 결과를 리턴 할 것이고, 더 정확한 것은 꼭대기에 올 것이고, 내가하고있는 것에 대해서는 결과가 반환되지 않아 발견 된 결과가 없습니다. 너희들이 이것을 코딩하는 방법으로 나를 도울 수 있다면 크게 감사하겠다.구체적이고 광범위한 MySQL 검색
1
A
답변
0
당신은 PARAMS 먼저 비어 있지 않은 어떤 알아 내야 & "부터 시작 :
$query = "SELECT * FROM table WHERE".substr($query,3);
0
PHP를 사용하여 부분적으로 쿼리를 작성하고 값이 있으면 필요한 부분을 추가하십시오. 따라서 다음과 같이됩니다.
$sql = "SELECT * FROM table WHERE 1";
$sql = .= (if(isset($_POST['field1']) && $_POST['field1'])?' AND field1='{$_POST['field1']}':'';
//etc
분명히 이것은 기본적인 예이며 그대로 사용해서는 안됩니다. 쿼리에서 사용하기 전에 사용자가 입력 한 내용을 살균해야합니다.
foreach $_POST as $param {
$params[] = $param;
}
는 다음 WHERE ATTR에 대한 긴 발현 확인해야합니다 :
$query = "";
foreach $params as $param_name=>$param {
$query .= " && ".$param_name."=".$param;
}
// output: " && age=15 && gender=female && eyes=brown"
을하고 마침내 & "없이 SELECT을
관련 문제
- 1. 지역에 대한 구체적이고
- 2. 파이썬에서 광범위한 첫 번째 검색 구현
- 3. 광범위한 첫 번째 검색 - 표준 Python 라이브러리
- 4. 광범위한 검색에 사용할 아키텍처
- 5. Google Chromecast의 콘텐츠 전송 : 구체적이고 완전한 예
- 6. 광범위한 데이터 마이닝을위한 서버 사양
- 7. 광범위한 인수가있는 함수
- 8. 광범위한 업데이트 성명
- 9. htacces rewriteRule 광범위한 URL의
- 10. 광범위한 개체 구성
- 11. 광범위한 재귀 튜토리얼
- 12. 웹 디자인의 광범위한 이미지
- 13. MySQL, 검색 필드 검색
- 14. 광범위한 링크 목록의 확장자 찾기
- 15. 안드로이드에 대한 광범위한 경험이 필요합니까?
- 16. 들어오는 지류를위한 광범위한 캐스트 수신기
- 17. videojs v4.7.2에 대한 광범위한 지원
- 18. 시각화를위한 NoSql 광범위한 응용 프로그램
- 19. HHVM - 실행중인 광범위한 PHP 데몬
- 20. 광범위한 검색 첫 번째 검색 방법 여러 지점에서 특정 경로를 찾는 방법
- 21. PHP mySQL 검색 문제
- 22. mysql 전체 텍스트 검색
- 23. 고급 MySQL 검색 도움말
- 24. mysql jdbc에서 텍스트 검색
- 25. MySQL Fulltext (Not) 검색
- 26. 검색 + mySQL 데이터 바꾸기
- 27. PHP MySQL 검색 문제
- 28. MYSQL 검색/와일드 카드
- 29. MySQL 부울 부분 검색
- 30. Joomla의 MYSQL 검색 쿼리
안녕하세요 맑은 나는 완전히 내 SQL과 PHP 그리고 foreach 나 $ param을 본 적이 처음있는 것은 아니지만 나는 그것의 요지를 얻은 것 같아요. 내가 정확히 따라 가지 않으면 저를 시정하십시오. 따라서 첫 번째 코드는 기본적으로 게시 된 필드 정보를 가져 와서 $ params라는 배열에 저장하는 것입니다. 두 번째 코드는 해당 배열을 가져 와서 각 인덱싱 된 필드를 넣은 다음 사용 가능한 MySQL 쿼리 문자열에 넣는 것입니다. 세 번째 코드는 $ 쿼리 변수를 사용하여 select 문에 넣습니다. 이 문제에 내가 틀렸다면 나에게 알려주십시오. – Nate
예. 당신도 그것을 이해했습니다. – primetwig
안녕하세요 맑은 데 도움을 주셔서 감사합니다. 약간의 추가 작업이 필요했고 새로운 것을 배웠지 만 정확히 필요한 방식으로 작동하게 만들었고 올바른 방향으로 나를 지적했습니다. – Nate