2014-02-09 2 views
0

방금 ​​PHP 프로그래밍을 시작했고 다음과 같은 시나리오가 있습니다. 이 모바일 키패드 .i.e에서 복용 상상으로PHP T9 모바일 키패드

  1. 내 연락처 목록이 MySQL 데이터베이스 (을 Fname, LNAME, 전화)에 저장되어
  2. 를 적어 사용자의 입력을 완료 =. 'abc'는 1에 해당하고, 'def'는 2 등입니다.
  3. 사용자가 '738'을 입력하면 'PET'에 해당하므로 'REU'에 해당합니다.
  4. php 코드는 사용자 입력을 숫자 형식으로 얻고 성을 통과하는 mysql 데이터베이스를 검색하여 이름과 일치하는지 확인하고 마지막으로 해당 연락처를 나열합니다. . 그러나 'SET'도 데이터베이스에 존재하지 않으면 738 BUT의 유효한 조합이기 때문에 표시되지 않습니다.

질문 : 어떻게 입력을 숫자로 가져 와서 가능한 모든 조합을 생성하여 데이터베이스와 일치시킬 수 있습니까? 나는 배열을 사용하여 모바일 키패드 매핑을 저장하고 어떻게 든 순열을 처리해야 할 것 같아요. 도움이 될 것입니다.

+0

여기 진짜 문제는 2002 년부터 시간 여행을하는 방법을 관리 않았다입니까? –

+0

나는 네가 옛 학교를 생각하고 있다고 암시한다고 가정한다. :) –

+1

약간의 노력을 보여주십시오. 재 시도 가능한 짧은 코드로 시도한 (및 실패한) 것을 제공하십시오. –

답변

1
나는 이것이 당신이 정말로 같은, 그런 식으로, 당신은 모든 가능성을 열거 할 수있는이 작업을 수행하고 검색하고 싶었다면 2014

의 가치가 프로그래밍은 여전히 ​​어디에 사용 사례에 대한 자세한 내용을 듣고 싶어요

:

222 = AAA, AAB, AAC, ABA, ABB, ABC, ACA, ACB, ACC, BAA, BAB, BAC, BBA, BBB, BBC, BCA, BCB, BCC, CAA, CAB, CAC, CBA, CBB, CBC, CCA, CCB, CCC 

3 가지 (27) 가능성이 있습니다.

7 개의 숫자가있는 경우 3^7th 또는 2187 개의 순열을 가지며 이는 경건하지 않은 OR LIKE 'AAAAAAA%' 연쇄가 될 것입니다.

그러나이 방법은 거꾸로입니다. 이 방법으로 검색하려는 name에 대해 mobile-keypad-name을 추가하고 대표 숫자로 미리 채우십시오. name 당 하나의 가능성 만 있습니다.

는 SQL 조회가 다음 직선 샷 :

WHERE mobile-keypad-name = "2222222";