PHP T9手机键盘

时间:2014-02-09 00:34:40

标签: php mysql mobile keypad

我刚刚开始PHP编程并且有以下场景;

  1. 我的联系人列表保存在mysql数据库中(Fname,Lname,phone)= done
  2. 将用户输入视为想象从移动键盘获取的内容。 'abc'对应1,'def对应2等。
  3. 假设用户输入“738”......这将对应于'PET','REU'也将对应。
  4. php代码假设要做的是以数字的形式获取用户输入并通过mysql数据库搜索通过姓氏查看它是否对应于任何名称并最终列出这些联系人。但是,由于'SET'也是738 BUT的有效组合,如果它在数据库中不存在,它将不会显示。
  5. 问题:我如何获取数字输入并生成所有可能的组合以匹配数据库?我想我将不得不使用数组来存储移动键盘映射,并以某种方式进行排列。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分: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 ^ 7或2187个排列,这将是一个不合理的OR LIKE 'AAAAAAA%'链。

然而,这种方法是倒退的。您应该为要使用此方法搜索的任何mobile-keypad-name添加name,并使用代表性数字预先填充它 - 每name只有一种可能性。

SQL查找是一个直接的镜头:

WHERE mobile-keypad-name = "2222222";