PHP T9 移动键盘 [关闭]
Posted
技术标签:
【中文标题】PHP T9 移动键盘 [关闭]【英文标题】:PHP T9 mobile keypad [closed] 【发布时间】:2014-02-09 00:34:40 【问题描述】:我刚开始php编程,有以下场景;
-
我的联系人列表保存在 mysql 数据库中(Fname、Lname、电话)= 完成
将用户输入想象成从移动键盘获取。 'abc' 对应 1,'def 对应 2 等等。
假设用户输入“738”...这将对应于“PET”,“REU”也是如此。
php 代码要做的是以数字形式获取用户输入,并通过 mysql 数据库搜索姓氏,看看它是否对应于任何名称,最后列出这些联系人.但是,由于 'SET' 也是 738 BUT 的有效组合,如果它在数据库中不存在,则不会显示。
问题:如何以数字形式输入并生成所有可能的组合以匹配数据库?我想我将不得不使用数组来存储移动键盘映射并以某种方式进行排列。 任何帮助将不胜感激。
【问题讨论】:
真正的问题是,您是如何从 2002 年开始进行时间旅行的? 我想你是在暗示我在想老学校。 :) 请付出一些努力。在简短的可重现代码中提供您尝试过(但失败了)的内容。 嗨罗尼...抱歉!我真的不知道从哪里开始……现在,我已经设置了与 mysql 交互的 php,从表中获取数据,但它与问题无关。这就是我在没有任何代码的情况下发布此问题的原因。 我已经编辑了我的问题以使其更清楚。 【参考方案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";
【讨论】:
以上是关于PHP T9 移动键盘 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章