我想知道如何创建一个PHP搜索表单来执行三个表中的搜索功能:电话,制造商和操作系统。用户将搜索价格 即输入“350”将搜索手机表格中的价格字段并显示价值350及以下的所有商品或搜索“Android”将搜索 operatingsystem 表并显示所有运行Android的手机。
但是, operatingsystem 表有一个名为OSID的主键,但 phones 表有一个引用OSID的外键。当手机表包含ID而不是操作系统名称时,如何根据Android搜索结果获取结果?
答案 0 :(得分:0)
希望我理解得很好......
您有一个表:phone
,它具有表operating_system
中的引用ID,与manufacturer
相同,因此,例如,我在操作系统中有表条目如
OPERATING_SYSTEM
和制造商
所以,在我的手机中我有类似
的东西id / name / operating_system / manufacturer / price
1 / samsung galaxy / android / samsung / 300usd
所以,如果你想显示搜索350美元以下手机的所有细节,你需要做这样的事情
select * from operating_system, manufacturer, phones
where phones.operating_system = operating_system.id
and manufacturer.id = phone.manufacturer
and phone.price < 350
以后显示结果..
答案 1 :(得分:0)
那么创建第四个表来索引所有其他表的内容呢?
您可以将此表设置为具有主键(自动增量),第二个字段(0,表1; 1,表2; 2,表3)和具有引用该键的外键的第三个字段指定表中的元素。然后最后一个字段将包含一个单词。
可以将搜索查询拆分为单词并查询第四个表格。
然后选择并加入匹配,在3个原始表中查找它们......
然后在前端你可以添加一些css类,以允许用户快速过滤(jquery)并只保留某种类型的结果,这样你(她实际上)删除了误报,同时仍然允许用户改变主意。
祝你好运,答案 2 :(得分:-1)
您可以为不同的数据提供不同的表单输入。这样,您就可以知道将哪些数据插入SQL查询的哪一部分。
尽管如此,重新发明轮子并不是2013年开发人员通常推荐的活动。您可以使用已存在的内容,例如Sphider。我确信有很多替代方案,但这是一个开始......
但有几条建议: